0

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

4

1 回答 1

2

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

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

当您的应用从后台恢复或第一次打开时,您应该查询手机的联系人,以获取自上次与联系人同步日期以来已修改的所有记录。这样,您只能处理更新的联系人,而无需每次都遍历每个已保存的联系人。

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

于 2013-11-13T21:18:11.370 回答