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

use*_*895 3 iphone core-data ios

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

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

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

我知道有一个托管对象objectID,但从我读到的内容,它可以更改(用户可以在使用应用程序时更改其配置文件信息,这意味着必须获取然后重新保存).是否有最好的做法来处理我不知道的这种情况?

ado*_*oho 7

user1007895,

有一种机制来坚持永久性objectID.-[NSManagedObjectID URIRepresentation]-[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:].这些保证永远不会改变.

安德鲁

  • 对于想知道如何从托管对象获取此URI的人,您可以执行以下操作:`object.objectID.URIRepresentation`. (4认同)
  • 请注意,如果尚未保存相应的托管对象,则对象ID(以及URI)是一个临时值,在保存相应的托管对象时将更改该值. (2认同)