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

我的应用上传联系人,并在未来,将需要更新他们。 使用ABRecordID是一种可靠的方法来识别人,或者是否有可能为新logging获取已删除logging的ID?

为了优化上传,我只想上传自上次上传以来修改或创build的logging。 我目前正在使用核心数据存储该联系人的副本。 我想减less我的应用程序的足迹,并加快扫描通过人的地址簿寻找修改/新的联系人的执行时间,并限制需要上传的金额。 通过分析一些人的地址簿,联系人的数量可以从30到30,000左右。 处理30,000个联系人是一场噩梦。

新logging不会获得先前与已删除logging关联的ID。 ABRecordID在这方面是独一无二的。 但是随着时间的推移,它们不一定是一致的,有几件事情会导致id发生改变。 用户打开或closuresiCloud可能会导致id改变,从iTunes恢复设备。 也就是说, ABRecordID仍然是您为联系人获取唯一ID的最佳select。 你只需要仔细检查,使用它时排队。 苹果在地址簿编程指南中build议如下:

保持对特定logging的长期引用的推荐方式是除了标识符之外,还存储名字和姓氏,或名字和姓氏的散列。 当您通过ID查找logging时,将logging的名称与您的存储名称进行比较。 如果它们不匹配,则使用存储的名称查找logging,并存储logging的新ID。