ios - 跟踪 ABRecordRef 中的某些电子邮件更改

标签 ios iphone objective-c addressbook abrecord

我正在创建一个应用程序来同步地址簿。我已经将地址簿记录同步到基于本地核心数据的数据库中,并且我已经可以获取它们了。使用 ABRecordId 可以轻松同步记录。我将某条地址簿记录的记录id存储到我的本地数据库中,因此我可以根据id获取某条记录。我还可以通过实现 ABAddressBookRegisterExternalChangeCallback 来实现回调。但是有没有办法跟踪特定电子邮件的更改。用户可以更改他的电子邮件,怎么可能知道某个电子邮件是否已更改。

最佳答案

没有办法附加一个“监听器”,每次有人编辑联系人时,它都会以某种方式调用您的应用程序中的函数。但是,有一种方法可以使您的应用保持最新状态:

在 NSUserDefaults 中存储一个变量,其中包含您上次从手机导入新联系人的日期。

当您的应用程序从后台恢复或首次打开时,您应该查询手机的通讯录,以了解自上次与通讯录同步以来已修改的所有记录。这样,您就可以只处理更新的联系人,而不必每次都遍历每个已保存的联系人。

您应该能够按此属性对人员记录进行排序: kABPersonModificationDateProperty ( reference )

关于ios - 跟踪 ABRecordRef 中的某些电子邮件更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964383/

相关文章:

ios - 提交前如何预测我的APP在应用商店中的ID?

objective-c - iOS super 奇怪的问题, subview 没有我添加就添加了

iphone - 为 iPhone 应用程序存储数据

iphone - TableView :cellForRowAtIndexPath: only returning one custom uitableviewcell

javascript - 位置 :fixed divs move when opening a 'select' element on iphone?

iphone - @property 是 Interface Builder 所必需的吗?

objective-c - 更改手势识别器位置?

ios - 具有与多个子类共享的 BaseGame 类的单个 GKScene

ios - 在 Swift 中初始化 CLCircularRegion

ios - MediaPlayer -requestThumbnailImagesAtTimes 不触发通知