Привет! Я пытался наблюдать за изменениями в списке контактов.В контроллере View я установил уведомление для получения события для изменения контактов.
class TestChangeContatct: UIViewController{
@IBOutlet var textLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(
self,
selector: #selector(addressBookDidChange),
name: NSNotification.Name.CNContactStoreDidChange,
object: nil)
}
@objc func addressBookDidChange(notification: NSNotification){
print("notification: \(notification)")
}
}
Но addressBookDidChange никогда не вызывается, кто-нибудь знает почему?Из Apple:
Уведомления об изменениях контактов После успешного выполнения сохранения хранилище контактов отправляет уведомление CNContactStoreDidChange в центр уведомлений по умолчанию.Если вы кэшируете какие-либо объекты каркаса контактов, вам необходимо повторно получить эти объекты либо по их идентификаторам, либо по предикатам, которые использовались для их первоначального извлечения, а затем освободить кэшированные объекты.Обратите внимание, что кэшированные объекты устарели, но не являются недействительными.
https://developer.apple.com/documentation/contacts