iOS核心数据对象的唯一标识符?

时间:2011-10-23 17:22:42

标签: iphone ios core-data

我有一个使用Core Data的iPhone应用程序,但我似乎无法找到特定实体的可靠唯一标识符。情况如下:

我有一个Profile实体,与其他实体有关系。在应用程序开始时,用户选择要使用“登录”的配置文件。我需要在整个应用程序的使用过程中跟踪该特定的配置文件,以便我可以获取正确的相关对象。

如果我使用普通的sql数据库,我只会将profileID(主键)存储为App Delegate中的属性。但是,在Core Data中,没有主键。

我知道有一个托管对象objectID,但是根据我的阅读,它可以更改(用户可以在使用应用程序时更改其个人资料信息,这意味着必须提取然后重新保存)。是否有最好的做法来处理我不知道的这种情况?

2 个答案:

答案 0 :(得分:7)

user1007895,

有一种机制可以保留永久objectID-[NSManagedObjectID URIRepresentation]-[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:]。这些保证永远不会改变。

安德鲁

答案 1 :(得分:1)

重新保存不会更改唯一的objectID,除非您重新创建(=复制)对象并保存它 - 否则唯一ID将毫无意义。

如果是这种情况,您可以随时拥有自己的id字段,在第一次创建配置文件时可以使用objectID填充;如果你不自己改变那个领域永远不会改变: - )。