【问题标题】: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

【问题讨论】:

    标签: core-data


    【解决方案1】:

    我找到了答案here,上面写着:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2019-11-17
      • 2016-05-07
      • 1970-01-01
      相关资源
      最近更新 更多