为啥existingObjectWithID 保存后会返回一个带temporaryID 的managedObject?
Posted
技术标签:
【中文标题】为啥existingObjectWithID 保存后会返回一个带temporaryID 的managedObject?【英文标题】:Why does existingObjectWithID return an managedObject with temporaryID after save?为什么existingObjectWithID 保存后会返回一个带temporaryID 的managedObject? 【发布时间】:2014-07-28 10:28:07 【问题描述】:为什么用existingObjectWithID
获取的managedObject的objectID在main managedObjectContext被保存后还是临时的?
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】:我找到了答案here,上面写着:
因为孩子没有从父 MOC 那里得到更新。父 MOC 将使用永久 ID 更新其自己的 NSManagedObject 实例,但该更改不会下推到属于子 MOC 的 NSManagedObject 实例。
【讨论】:
以上是关于为啥existingObjectWithID 保存后会返回一个带temporaryID 的managedObject?的主要内容,如果未能解决你的问题,请参考以下文章
这是文档中的错误吗? -existingObjectWithID:error: 或 -objectWithID: 似乎声称不同的东西不匹配