2014-11-03 123 views
0

地址簿更改时是否有通知的方法? 即当用户正在编辑联系电话号码时。ABAddressBook更改监听器

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

回答

1

我不知道有没有办法做你做什么,但我可以给你一个重要的提示,当您检查您的地址簿针对本地副本(如核心数据):

有一个唯一的ID (ABRecordID)分配给任何更改的联系人。不要依赖那个。从Apple DOC:

使用记录标识

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

保持对特定 记录的长期参考的推荐方式是存储名称的第一个和最后一个名字,或者除了标识符外还存储第一个和最后一个名字的散列。当您通过 ID查找记录时,将记录名称与您的存储名称进行比较。如果他们不匹配 ,请使用存储的名称查找记录,并将新的ID 作为记录存储。

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