唯一标识ABRecord记录:[ABRecord uniqueId]是不可变的吗?

Ste*_*eAp 5 macos cocoa abaddressbook

我需要在应用程序中引用ABPerson记录.我使用提供的唯一ID

  - (NSString *)uniqueId
Run Code Online (Sandbox Code Playgroud)

并将其附加到我的应用内联系记录中.

另外,我将ABPerson的 vCardRepresentation保存为后备.如果应用程序不再能够使用uniqueID找到ABRecord,则应用程序会要求用户使用保存的vCardRepresentation恢复地址簿记录.一切正常.

不幸的是,一位朋友告诉我,uniqueId不是不可变的:在同步期间,uniqueId可能会突然改变.

据他介绍,地方iOS版的文件中,苹果解释说,没有办法存在于一成不变的确定使用UNIQUEID ABPersons.在OS X的Cocoa文档中,我没有找到这样的提示.

在给定的Mac上,uniqueId可能会突然改变吗?如果这是真的,那么从外部应用程序中识别ABPerson记录的正确方法是什么?

如果uniqueID不是不可变的,我当然可以使用GUID分配一个自定义属性.不幸的是,自定义字段不同步.

当然,我更喜欢使用uniqueId.

Rog*_*ger 5

对于它的价值,来自Apple的techdoc:

kABUIDProperty此记录的唯一ID.无论记录变化多少,都保证永远不会改变.如果需要存储对记录的引用,请使用此值.键入:kABStringProperty.适用于Mac OS X v10.2及更高版本.在ABGlobals.h中声明.