我的应用上传了联系人,并且将来需要更新它们。使用ABRecordID
是一种可靠的识别方式的方法,还是新记录可以获取已删除记录的ID?
要优化上传,我只想上传自上次上传以来已修改或创建的记录。我目前正在使用核心数据存储此人的联系人副本。我想减少应用程序的占用空间,加快扫描人员通讯录的执行时间,寻找修改后的/新联系人并限制需要上传的数量。在分析了一些人的地址簿之后,联系人的数量可以从30到30,000左右。处理30,000个联系人是一场噩梦。
答案 0 :(得分:16)
新记录不会获取以前与已删除记录关联的ID。 ABRecordID
在这方面是独一无二的。但随着时间的推移,它们并不一定是一致的,一些事情可能导致id改变。用户打开或关闭iCloud可能会导致id更改,因为可能会从itunes恢复设备。
也就是说,ABRecordID
仍然是获得联系人唯一ID的最佳选择。您只需要在使用它时仔细检查是否排列。 Apple在地址簿编程指南中提出以下建议:
保持对特定内容的长期引用的推荐方法 record是存储名字和姓氏,或者是第一个和第一个的哈希值 姓氏,除了标识符。当你查找记录时 ID,将记录的名称与存储的名称进行比较。如果他们不这样做 匹配,使用存储的名称查找记录,并存储新ID 记录。