如何检查新联系人是否已添加到地址簿中?

时间:2010-10-12 01:02:25

标签: iphone ios4

嘿,
我正在保存数据库中所有联系人的副本 启动后,我想检查通讯录中是否有新联系人,以便将其添加到我的数据库中。

如何执行此检查?我找不到合适的逻辑来实现它。

2 个答案:

答案 0 :(得分:3)

在地址簿中找到“新联系人”并不容易。相反,你必须做这样的事情:

  1. Get an array of all the contacts in the address book
  2. 遍历数组并查看联系人是否在您的数据库中。 (注意:记录ID can change!)
  3. 如果您发现某个联系人不在您的数据库中,请添加它。
  4. 存储属性的last modification date并将其与每条记录进行比较可能也很聪明,这样您就可以知道现有记录是否有变化。

    最后,这可能需要一段时间,具体取决于用户拥有的联系人数量。这可能是你想要做的事情,而不会阻止UI。 (另一个注意事项:地址簿类型不是线程安全的。如果你在后台线程中工作,请记住这一点。)

    当您的应用程序正在运行时,您可以注册address book change notification callback以提醒您应用运行时发生的更改。

答案 1 :(得分:0)

更简单的方法(不需要太多的内存空间):

  1. 从AddressBook&amp ;;加载数据时保存应用程序数据库最新的TimeStamp。总人数。

  2. 编写一个检查功能,并在需要时调用它

  3. 检查功能:获取所有联系人的最新修改日期,立即获取总计数,只需将最新日期与TimeStamp进行比较:

    BOOL beNeedRefresh = NO;

    if(latest> TimeStamp){

    beNeedRefresh = YES;

    }否则if(addressbook count!=您的数据库计数){

    beNeedRefresh = YES;

    }

    如果(beNeedRefresh){

    刷新数据库!!!!

    }