在iOS应用程序中,我使用解析JSON对象的框架创建NSManagedObject
子类对象,然后将它们插入NSManagedObjectContext
。但是,我想区分那些新创建的对象和已经保存到持久性存储中的对象。那是因为我可能需要更新或覆盖商店中的一些对象。当我执行NSFetchRequest
时,它只返回所有已注册的对象,这两个对象都是从商店中提取的,以及我在本地创建的内存中的对象。我怎样才能区分这两种类型的对象?
答案 0 :(得分:1)
您可以通过查看对象ID来判断是否已保存托管对象。检查myObject.objectID.isTemporaryID
,直到您第一次保存对象为true
,然后再false
。
然而,正如@ Paulw11在评论中暗示的那样,在这种情况下,通常最好在创建一个新对象之前找出你是否已经有一个本地对象。这避免了重复的问题。您可以更新现有对象的值,也可以将其删除并替换它。