无法使用Swift便利初始值设定项将新NSManagedObject添加到CoreData中
我尝试学习CoreData的现代方法,我编写了以下代码块,用于将新记录保存到CoreData:无法使用Swift便利初始值设定项将新NSManagedObject添加到CoreData中,swift,core-data,Swift,Core Data,我尝试学习CoreData的现代方法,我编写了以下代码块,用于将新记录保存到CoreData: @IBAction func saveTapped(_ sender: UIBarButtonItem) { guard let context = persistentContainer?.viewContext else { return } guard let newSettings = NSEntityDescription.insertNewObjec
@IBAction func saveTapped(_ sender: UIBarButtonItem) {
guard let context = persistentContainer?.viewContext else { return }
guard let newSettings = NSEntityDescription.insertNewObject(forEntityName: "Settings", into: context) as? Settings else { return }
newSettings.ingredients = self.ingredients.rawValue
self.saveData()
}
它工作正常,但我认为我应该使用我的设置类的便利初始值设定项,如下所示:
@IBAction func saveTapped(_ sender: UIBarButtonItem) {
guard let context = persistentContainer?.viewContext else { return }
let newSettings = Settings(context: context)
newSettings.ingredients = self.ingredients.rawValue
context.insert(newSettings)
self.saveData()
}
@IBAction func saveTapped(_ sender: UIBarButtonItem) {
guard let context = persistentContainer?.viewContext else { return }
let newSettings = Settings(context: context)
newSettings.ingredients = self.ingredients.rawValue
self.saveData()
}
然而,这是行不通的。当我重新运行我的应用程序时,我看不到我的更改被加载(并且我将viewdiload()中的Settings
加载到设置界面)
我遗漏了什么吗?我不知道为什么,删除了上下文。插入(新闻设置)
帮助。
因此,有效代码如下所示:
@IBAction func saveTapped(_ sender: UIBarButtonItem) {
guard let context = persistentContainer?.viewContext else { return }
let newSettings = Settings(context: context)
newSettings.ingredients = self.ingredients.rawValue
context.insert(newSettings)
self.saveData()
}
@IBAction func saveTapped(_ sender: UIBarButtonItem) {
guard let context = persistentContainer?.viewContext else { return }
let newSettings = Settings(context: context)
newSettings.ingredients = self.ingredients.rawValue
self.saveData()
}
在第二个示例中,删除行context.insert(newSettings)
。API设置(上下文:)
插入对象。