ABRecordID是识别唯一联系人的可靠方式吗?

时间:2013-06-04 15:46:53

标签: ios cocoa-touch contacts abaddressbook

我的应用上传了联系人,并且将来需要更新它们。使用ABRecordID是一种可靠的识别方式的方法,还是新记录可以获取已删除记录的ID?

要优化上传,我只想上传自上次上传以来已修改或创建的记录。我目前正在使用核心数据存储此人的联系人副本。我想减少应用程序的占用空间,加快扫描人员通讯录的执行时间,寻找修改后的/新联系人并限制需要上传的数量。在分析了一些人的地址簿之后,联系人的数量可以从30到30,000左右。处理30,000个联系人是一场噩梦。

1 个答案:

答案 0 :(得分:16)

新记录不会获取以前与已删除记录关联的ID。 ABRecordID在这方面是独一无二的。但随着时间的推移,它们并不一定是一致的,一些事情可能导致id改变。用户打开或关闭iCloud可能会导致id更改,因为可能会从itunes恢复设备。 也就是说,ABRecordID仍然是获得联系人唯一ID的最佳选择。您只需要在使用它时仔细检查是否排列。 Apple在地址簿编程指南中提出以下建议:

  

保持对特定内容的长期引用的推荐方法   record是存储名字和姓氏,或者是第一个和第一个的哈希值   姓氏,除了标识符。当你查找记录时   ID,将记录的名称与存储的名称进行比较。如果他们不这样做   匹配,使用存储的名称查找记录,并存储新ID   记录。