在我的应用中,我收到了所有地址簿数据。但是当我下次启动app时,我只想在地址簿中检索已修改/新添加的联系人。
你能告诉我任何可能的方法吗?
感谢。
答案 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
。它应该有所帮助。