如何在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以通知所选元素的状态更改