如何从iOS中的地址簿检查和检索更改/新添加的联系人详细信息?

时间:2011-12-15 18:42:43

标签: iphone objective-c

在我的应用中,我收到了所有地址簿数据。但是当我下次启动app时,我只想在地址簿中检索已修改/新添加的联系人。

你能告诉我任何可能的方法吗?

感谢。

2 个答案:

答案 0 :(得分:7)

从iOS 9开始,您可以将您的课程注册到observ CNContactStoreDidChangeNotification

Obj-C代码:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addressBookDidChange:) name:CNContactStoreDidChangeNotification object:nil];

然后:

-(void)addressBookDidChange:(NSNotification*)notification
{
  //Handle event here...
}

Swift代码:

NSNotificationCenter.defaultCenter().addObserver(
    self,
    selector: "addressBookDidChange:",
    name: CNContactStoreDidChangeNotification,
    object: nil)

然后:

@objc func addressBookDidChange(notification: NSNotification){     
    //Handle event here...
}

报告Contacts Framework Reference

  

成功执行保存后,联系人存储会发布一个   CNContactStoreDidChangeNotification通知为默认值   通知中心。如果您缓存任何Contacts框架对象   需要通过标识符或使用标记来重新获取这些对象   用于最初获取它们的谓词,然后   释放缓存的对象。请注意,缓存的对象是陈旧的,但是   没有效果。

答案 1 :(得分:0)

我写了一种方法,检查地址簿中是否有更新的电话号码或联系人的电子邮件;特别是只联系用户添加,但没有什么能阻止他们将其扩展到所有联系人。

它名为JPContactArchive,您要查看的方法是-updateContacts。它应该有所帮助。