【发布时间】:2014-11-03 13:21:13
【问题描述】:
有没有办法在更改通讯录时得到通知? 即当用户正在编辑联系人电话号码时。
我问这个的原因是因为我的应用程序有一个自己的联系人表,来自我从地址簿中提取的用户。我想知道何时更新他们的数据,而不是每次应用唤醒时都这样做。
【问题讨论】:
有没有办法在更改通讯录时得到通知? 即当用户正在编辑联系人电话号码时。
我问这个的原因是因为我的应用程序有一个自己的联系人表,来自我从地址簿中提取的用户。我想知道何时更新他们的数据,而不是每次应用唤醒时都这样做。
【问题讨论】:
我不知道有什么方法可以做您所做的事情,但是当您对照本地副本(例如核心数据)检查您的通讯簿时,我可以给您一个重要提示:
有一个唯一的 ID (ABRecordID) 分配给任何更改的联系人。不要依赖那个。来自 Apple 文档:
使用记录标识符
通讯簿数据库中的每条记录都有唯一的记录 标识符。此标识符始终引用相同的记录,除非 该记录被删除或数据被重置。记录标识符可以是 在线程之间安全地传递。他们不能保证保持 跨设备相同。
推荐的方式来保持对特定的长期参考 记录是存储名字和姓氏,或者是名字和姓氏的哈希值 姓氏,除了标识符。当您通过以下方式查找记录时 ID,将记录的名称与您存储的名称进行比较。如果他们不 匹配,使用存储的名称查找记录,并存储新的ID 记录在案。
【讨论】: