ABAddressBook更改了侦听器

时间:2014-11-03 13:21:13

标签: objective-c abaddressbook

有没有办法在更改地址簿时收到通知? 即当用户正在编辑联系电话号码时。

我问这个的原因是因为我的应用程序有一个自己的联系人表,来自我从地址簿中取出的用户。我想知道何时更新他们的数据,而不是每次应用程序唤醒时都这样做。

1 个答案:

答案 0 :(得分:1)

我不知道你做了什么,但是当你根据本地副本(例如核心数据)检查你的地址簿时,我可以给你一个重要的提示:

分配给任何更改的联系人的唯一ID(ABRecordID)。不要依赖于此。来自Apple doc:

  

使用记录标识符

     

通讯簿数据库中的每条记录都有一条唯一的记录   标识符。除非,此标识符始终引用相同的记录   该记录被删除或数据被重置。记录标识符可以是   在线程之间安全传递。他们不能保证保持不变   相同的设备。

     

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

https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/DirectInteraction.html