Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Swift便利初始值设定项将新NSManagedObject添加到CoreData中_Swift_Core Data - Fatal编程技术网

无法使用Swift便利初始值设定项将新NSManagedObject添加到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

我尝试学习CoreData的现代方法,我编写了以下代码块,用于将新记录保存到CoreData:

    @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
设置(上下文:)
插入对象。