上下文
我有一个App,它使用SwiftUI和CoreData。为了显示Data并在Model中出现更改时自动更新它,SwiftUI提供了@FetchRequest Property Wrapper,可以在Views中使用。
但是,我希望有一个ViewModel来管理存储在CoreData中的Data,并且可以通过@Published Property Wrapper供Views使用。但我在实现解决方案时遇到了困难,该解决方案也会自动更新到CoreData中的更改。
码
class SomeViewModel: ObservableObject {
@Published var fi
我正在尝试创建一个将记录保存到CoreData数据库的意图。如果我从主应用程序中运行代码,但不是在Intent中,则会创建记录。
代码如下:
import Intents
import CoreData
import SwiftUI
let persistenceController = PersistenceController.shared
class IntentHandler: INExtension, DiaryIntentHandling
{
var moc = PersistenceController.shared.context
override fun
我有一个应用程序,它将与服务器同步,数据可以每天更改。在同步过程中,我会删除某些实体的所有数据,然后用新的数据重新加载它。我使用以下代码:
func SyncronizeUserComments(theData : [[AnyHashable : Any]])
{
// Delete User Comments for this User and Connection
let commentRequest : NSFetchRequest<NSFetchRequestResult> = PT_UserComments.fetchRequest()
c
我有一个实用函数,可以将数据保存到CoreData。
func saveData(content: String) throws -> Void {
// saves a model to CoreData
}
当用户点击Button时,我想启动这个函数。有点像
Button(action: saveData)
但是,当我尝试这样做时,我会得到一个错误Invalid conversion from throwing function of type '() throws -> Void' to non-throwing function type '
我有一个视图,可以在其中向CoreData添加一个新条目。该条目的名称不能为null,这可以在ViewModel中看到。如果有人试图添加一个没有名称的新条目,则会出现一个错误。现在,每当错误出现时,它就会自我否定。
观点:
struct AddProductPopover: View {
@Environment(\.presentationMode) var presentationMode
@StateObject var prodPopViewModel = AddProductPopoverViewModel()
var body: some View {
Navigati
我正在尝试构建一个核心数据应用程序,我正在使用一些基于图书的代码。
为了简化代码,我有如下所示:
class City: NSManagedObject {
@NSManaged public private(set) var name: String
@NSManaged public private(set) var population: Int
public static func insert(context: NSManagedObjectContext, name: String, population: Int) -> City {
使用CoreData和SwiftUI更改数据的值
我试图修改数据的布尔值isFavorite,在列表中的单元格上有一个按钮(心脏)。
模型数据
import Foundation
import CoreData
public class VoitureItem: NSManagedObject, Identifiable {
@NSManaged public var marque: String?
@NSManaged public var modele: String?
@NSManaged public var annee: String?
@NSM
我已经找到了解决这个问题的办法,但我不太喜欢这个办法。我的问题是这样的。我使用一个NSFetchedResultsController来填充一个UICollectionView--它显示了一组图像。每个图像都由一个Core数据对象描述(例如,它的文件名在Core数据对象中)。
我有UI控件,允许用户同时删除多个图像,当用户删除多个对象时出现问题。删除的代码是:
for image in images {
CoreData.sessionNamed(CoreDataExtras.sessionName).remove(image)
}
CoreData.s
所以我在看保罗·哈德森( Paul )关于CoreData的视频,但老实说,它仍然让我感到困惑,甚至读到苹果的文档,我也很难理解我在这里做什么,以及在做什么。
所以在这个视频中做的第一件事是我们制作了一个xcdatamodel文件,这是有意义的,它只是我们想要存储的任何数据的定义。然后,他用一个容器创建了一个DataController类,这个容器是一个NSPersistentContainer,它的名称参数是无论我的xcdatamodel的名称是什么,我不完全理解这个容器到底是用来做什么的?苹果表示,它只是设置了所有的东西( NSPersistentContainer的一个实例同时建立了模型
我正在我的应用程序中使用CoreData,并希望保存单个Picker值。我可以创建一个具有整数属性的实体,并始终编辑EntityList中的第一个对象。但这听起来并不是一个干净的解决方案。 选取器被放置在设置视图中,并且必须与iCloud同步。 有没有简单的方法可以做到这一点? 这就是代码。缺少的部分是如何保存Picker值。 @State private var PickerSelection: Int = 0
var body: some View {
Picker(selection: $PickerSelection, label: Text(
我对使用CoreData的SwiftUI有一些困惑,我只是在为Toggle做一个示例项目。我在PersistenceController中设置了新创建的项,但是切换始终保持关闭。我没有多少使用CoreData的经验,我之前关于CoreData的问题是不正确的,而且我被错误地告知了修复程序。
PersistenceController
static var preview: PersistenceController = {
let result = PersistenceController(inMemory: true)
let viewContext = result.co