首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >唯一标识ABRecord记录:[ABRecord uniqueId]不可变吗?

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

Stack Overflow用户
提问于 2011-08-16 20:46:03
回答 2查看 1.4K关注 0票数 5

我需要从应用程序中引用ABPerson记录。我使用由

代码语言:javascript
复制
  - (NSString *)uniqueId

并把它附加到我的应用程序联系记录上。

此外,我还保存了ABPerson's vCardRepresentation作为后盾。如果应用程序不再能够使用ABRecord定位uniqueID,应用程序要求用户使用保存的vCardRepresentation恢复adressbook记录。一切正常。

不幸的是,一位朋友告诉我,uniqueId并不是一成不变的:在同步过程中,uniqueId可能会突然改变。

据他说,在iOS文档的某个地方,苹果解释说,不可变的使用uniqueId识别ABPersons是不存在的。在OS‘Cocoa文档中,我没有找到这样的提示。

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

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

当然,我更喜欢使用uniqueId。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-23 08:21:28

苹果公司的技术专家给出了它的价值所在:

kABUIDProperty此记录的唯一ID。它保证永远不会改变,不管记录有多大的变化。如果需要存储对记录的引用,请使用此值。类型: kABStringProperty.可在MacOSXV10.2及更高版本中使用。在ABGlobals.h中声明。

票数 5
EN

Stack Overflow用户

发布于 2013-08-06 15:43:06

看来kABUIDProperty方法可能不再起作用了。我在下面的评论中看到了这篇博客文章中的更多讨论:

http://blog.clickablebliss.com/2011/11/07/addressbook-record-identifiers-on-mac-and-ios/

例如:如果用户决定打开iCloud同步,则该用户通讯簿中的唯一ids将更改。如果用户关闭iCloud同步,它们将再次更改。

增编:也许值得看一看StackOverflow条目这里

苹果的文档确实这么说(引用链接):

“保存对特定记录的长期引用的推荐方法是,在标识符之外存储姓名和姓氏的散列。当您按ID查找记录时,将记录的名称与存储的名称进行比较。如果它们不匹配,则使用存储的名称查找记录,并为记录存储新的ID。”

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7084805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档