CNContactStoreDidChange是否有效?更改联系人时,我无法收到回电



这是我的代码,我正在appDelegate中的viewDidLoadwithoptins中注册通知。

NotificationCenter.default.addObserver(
self, selector: #selector(contactStoreDidChange), name: .CNContactStoreDidChange, object: nil)

这是我的功能

@objc func contactStoreDidChange(notification: NSNotification) {

print("Contacts Changed")
UserDefaults.standard.set("Log Changed (Date())", forKey: "contact")
}

我没有收到任何通知。我试过用真实的设备和模拟器。

据我观察,只有当我们在应用程序中至少使用一次CNContactStore时,才会调用此通知。因此,请转到您的屏幕,在那里您的联系人至少会被提取一次。

所以基本上

let store = CNContactStore()
store.requestAccess(for: .contacts) { (status, error) in
}

上面的代码段应该执行一次

然后转到"联系人"应用程序,使您的应用程序进入后台,更改联系人,然后返回您的应用。您将看到此通知被解雇。

还要确保在某个一直存在的类中添加观察者,如AppDelegate

相关内容

最新更新