问题理解核心数据基础

Issue understanding Core Data fundamentals

我正在创建一个 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 所有 保存到核心数据中。

如何才能 "pull" 仅从我的 managedContext 中选择对象并将其保存到 Core Data 中? 非常感谢,Roi!

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

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

如果您想进行一些更改但不保存它们,那么您应该在不同的上下文中进行这些更改。