2016-07-12 3 views
1

Contacts.app와 같은 다른 응용 프로그램이 내 응용 프로그램의 연락처를 업데이트 할 연락처를 업데이트하는지 확인하려고합니다. 이 응용 프로그램은 Mac OS X 응용 프로그램입니다.CNContactStoreDidChangeNotification이 Mac OS X에서 실행되지 않음

나는

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(AppDelegate.addressBookDidChange(_:)), name: CNContactStoreDidChangeNotification, object: nil) 

를 사용 AppDelegate.swift에 관찰자를 추가하고 선택은 내가 Contacts.app

암을 사용하여 연락처를 업데이트하지만 내가 출력을 준수하지 않는

@objc func addressBookDidChange(notification:NSNotification){ 
    print("Contacts need update!") 
}. 

입니다 나는 무엇인가 놓친다?

OS는 macOS Sierra Beta 2입니다. 연락처 프레임 워크를 사용합니다.

답변

2

CNContactStore 통지를 관찰하려면이 상점을 만들고 참조를 유지해야합니다.

fileprivate var CNContactStore: CNContactStore? = nil 

func addObserver() { 
    contactStore = CNContactStore() 
    NSNotificationCenter.default.addObserver(self, selector: #selector(addressBookDidChange(notification:)), name: NSNotification.Name.CNContactStoreDidChange, object: nil) 
} 
+1

감사합니다. 비슷한 것을했습니다. 실제로 OS의 다음 버전을 사용하면 문제가 자동으로 해결됩니다. – zafer