1)创建托管对象,并将其保存在mocOut
中的managedObjectContext中。 mocOut
是主要managedObjectContext
var dmo: NSManagedObject? = nil
mo = NSEntityDescription.insertNewObjectForEntityForName("xxx", inManagedObjectContext: mocOut) as? NSManagedObject
let success = mocOut.save(nil)
2)创建名为mocOut
的{{1}}的子managedObjectContext
mocIn
为什么let mocIn = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
mocIn.parentContext = mocOut
mocIn.performBlockAndWait({
let managedObject = mocIn.existingObjectWithID(dmo!.objectID, error: nil) // <- return nil
方法返回nil?我在外部managedObjectContext中创建并保存了managedObject。
更新
在保存调用之后,我又添加了两个保存调用以保存上层MOC,也使用persistentStore保存主MOC。执行保存后,我可以看到记录写出到数据库,但existingObjectWithID
方法无法在existingObjectWithID
中获取记录。< / p>