如何在IOS中联系通知更改事件?
我想在iPhone的联系人有插入/更新事件时得到通知。
是否有可能通知我的应用程序有关特定的联系人更改事件发生?
只是一个新手…为IOS斯威夫特。
我不期望完整的源代码。 只是想知道它是否可能,也暗示。
提前致谢。
在iOS中可以使用 –
注册外部更改呼叫通知符 –
ABAddressBookRef ntificationaddressbook = ABAddressBookCreate(); ABAddressBookRegisterExternalChangeCallback(ntificationaddressbook, MyAddressBookExternalChangeCallback, self);
实施回拨 –
void MyAddressBookExternalChangeCallback (ABAddressBookRef ntificationaddressbook,CFDictionaryRef info,void *context) { // called when there is any change in AddressBook }
有关更多详细信息,请参阅此链接 –
检测从ABAddressBookRegisterExternalChangeCallback中更改的内容
从iOS 9开始,您可以注册您的课程来观察CNContactStoreDidChangeNotification
NSNotificationCenter.defaultCenter().addObserver( self, selector: #selector(addressBookDidChange), name: NSNotification.Name.CNContactStoreDidChange, object: nil)
接着:
@objc func addressBookDidChange(notification: NSNotification){ //Handle event here... }
如“ 联系人框架参考”中所述
保存成功执行后,联系人商店会将CNContactStoreDidChangeNotification通知发送到默认通知中心。 如果您caching任何联系人框架对象,您需要重新获取这些对象,或者通过它们的标识符,或者用于最初获取它们的谓词,然后释放caching的对象。 请注意,caching的对象是陈旧的,但不是无效的。
编辑:
请注意,地址簿和地址簿UI框架现在已被弃用。
您可以实现KeyValue Observers
observevalueforkeypath
以通知所选元素的状态更改