用唯一标识符获取NSManagedObject?
问题描述:
NSManagedObjects是否带有任何种类的唯一标识符?用唯一标识符获取NSManagedObject?
我需要抓取几个对象,但他们有很大的机会具有相同的属性,所以在获取这些对象之后,我如何区分它们?
谢谢。
答
是的。每个NSManagedObject都有一个-objectId
访问器,它返回一个NSManagedObjectID
实例。这些唯一标识了所讨论的对象。然后,您可以使用NSManagedObjectContext的方法-objectWithID:
或-existingObjectWithID:error:
再次检索对象。
请注意,如果对象在插入后尚未保存,对象ID将是一个临时ID,在保存时它将发生更改。您可以强制使用-[NSManagedObjectContext obtainPermanentIDsForObjects:error:]
分配一个永久ID,但这与实际保存一样贵。