我正在尝试观察其他应用程序(如Contacts.app)是否会对联系人执行更新以更新我的应用中的联系人列表。该应用程序是Mac OS X应用程序。
我使用
在AppDelegate.swift中添加观察者 NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(AppDelegate.addressBookDidChange(_:)), name: CNContactStoreDidChangeNotification, object: nil)
,选择器是
@objc func addressBookDidChange(notification:NSNotification){
print("Contacts need update!")
}.
虽然我使用Contacts.app
更新了联系人,但我没有观察到任何输出我错过了什么吗?
操作系统是macOS Sierra Beta 2。 我使用Contacts框架。
答案 0 :(得分:3)
要观察CNContactStore
通知,您应该创建此商店并继续参考。
fileprivate var CNContactStore: CNContactStore? = nil
func addObserver() {
contactStore = CNContactStore()
NSNotificationCenter.default.addObserver(self, selector: #selector(addressBookDidChange(notification:)), name: NSNotification.Name.CNContactStoreDidChange, object: nil)
}