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

Jef*_*gan 16 cocoa-touch contacts abaddressbook ios

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

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

Ben*_*son 16

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

保持对特定记录的长期引用的推荐方法是除了标识符之外还存储名字和姓氏,或者名字和姓氏的哈希值.按ID查找记录时,请将记录的名称与存储的名称进行比较.如果它们不匹配,请使用存储的名称查找记录,并存储记录的新ID.