3

嗨,我试图观察联系人列表中的变化。在视图控制器中,我设置了接收联系人更改事件的通知。

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 从来没有被调用过,有人知道为什么吗?来自苹果:

联系人更改通知 保存成功后,联系人存储会向默认通知中心发布 CNContactStoreDidChange 通知。如果您缓存任何 Contacts 框架对象,您需要通过它们的标识符或使用最初用于获取它们的谓词重新获取这些对象,然后释放缓存的对象。请注意,缓存的对象是陈旧的,但不是无效的。

https://developer.apple.com/documentation/contacts

4

0 回答 0