了解核心数据基础知识

时间:2016-06-28 17:35:21

标签: swift core-data nsmanagedobject nsentitydescription

我正在创建一个NSManagedObject数组,用作我的UITableView DataSource,如下所示:

let entity = NSEntityDescription.entityForName("YoutubeAsset", inManagedObjectContext: self.managedContext)!
let asset = YoutubeAsset(entity: entity, insertIntoManagedObjectContext: self.managedContext)
asset.videoId = code
myDataSource.append(asset)

而且,当用户选择其中一个单元格时,我想将特定对象保存到我的核心数据实体中。

问题在于,当我打电话

 do {
        try managedContext.save()
        } catch let error as NSError  {
            print("Could not save \(error), \(error.userInfo)")
        }

它将DataSource全部保存到核心数据中。

我怎样才能"拉"只有我managedContext中选定的对象,并将其保存到Core Data中?非常感谢,Roi!

1 个答案:

答案 0 :(得分:1)

如果managedContext在代码示例的开头没有未保存的对象,则在末尾保存上下文将导致单个SQL插入。

您无法保存单个实体,只保存上下文(保存上下文中未保存的所有实体)。

如果您想进行一些更改并让它们保存,那么您应该在不同的环境中进行这些更改。