为什么在保存后,existingObjectWithID在带有临时ID的托管对象上返回?

时间:2014-07-28 10:28:07

标签: core-data

为什么在保存主要的managedObjectContext后,existingObjectWithID获取的managedObject的objectID仍然是临时的?

var dmo: NSManagedObject? = nil                                    
dmo = NSEntityDescription.insertNewObjectForEntityForName(relationshipDescription.destinationEntity.name, inManagedObjectContext: mocIn) as? NSManagedObject

let success = temporaryContext.save(nil)                                    
Utility.managedObjectContext().performBlockAndWait({
    let kkk = Utility.managedObjectContext().save(nil)
})

println("isTemporaryID: \(dmo!.objectID.temporaryID)") // <- returns true

1 个答案:

答案 0 :(得分:2)

我找到了答案here,其中说:

  

因为孩子没有从父母MOC获得更新。父MOC将使用永久ID更新其自己的NSManagedObject实例,但该更改不会被下推到属于子MOC的NSManagedObject的实例。