我希望在iPhone的联系人有插入/更新事件时收到通知。
是否可以通过我的应用获取有关特定联系人更改事件的通知?
对于IOS Swift来说,只是一个新手......
我不期待完整的源代码。只是想知道它是否可能,也暗示。
提前致谢。
答案 0 :(得分:25)
从iOS 9开始,您可以注册课程以观察 CNContactStoreDidChangeNotification
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(addressBookDidChange),
name: NSNotification.Name.CNContactStoreDidChange,
object: nil)
然后:
@objc func addressBookDidChange(notification: NSNotification){
//Handle event here...
}
报告Contacts Framework Reference
成功执行保存后,联系人存储会发布一个 CNContactStoreDidChangeNotification通知为默认值 通知中心。如果您缓存任何Contacts框架对象 需要通过标识符或使用标记来重新获取这些对象 用于最初获取它们的谓词,然后 释放缓存的对象。请注意,缓存的对象是陈旧的,但是 没有效果。
修改强>
请注意,现在不推荐使用通讯簿和通讯簿UI框架。
答案 1 :(得分:7)
在iOS中,可以使用 -
完成注册外部更改回叫通知程序 -
ABAddressBookRef ntificationaddressbook = ABAddressBookCreate();
ABAddressBookRegisterExternalChangeCallback(ntificationaddressbook, MyAddressBookExternalChangeCallback, self);
实施回电 -
void MyAddressBookExternalChangeCallback (ABAddressBookRef ntificationaddressbook,CFDictionaryRef info,void *context)
{
// called when there is any change in AddressBook
}
有关详细信息,请参阅此链接 -
Detect what was changed from ABAddressBookRegisterExternalChangeCallback
答案 2 :(得分:0)
您可以实施KeyValue Observers
observevalueforkeypath
以获取所选元素状态更改的通知