ios - NSKeyValueObservation 不起作用,Swift 4

标签 ios swift key-value-observing swift4

我应该如何正确设置以在单例的共享实例上的变量发生更改时接收通知?目前,该 block 从未被触发。

class MyViewController: UIViewController {
    private var observer: NSKeyValueObservation?

    func configureKVO() {
        observer = MySingleton.shared.observe(\.shouldFetchDataFromServer) { (manager, change) in
            print("Changed: \(manager.shouldFetchDataFromServer)")
        }
        MySingleton.shared.shouldFetchDataFromServer = false
        MySingleton.shared.shouldFetchDataFromServer = true
    }
}

class MySingleton: NSObject {
    static let shared = MySingleton()
    @objc var shouldFetchDataFromServer: Bool = false
}

最佳答案

将“dynamic”关键字添加到 shouldFetchDataFromServer 的声明中,它应该可以工作。

关于ios - NSKeyValueObservation 不起作用,Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45473120/

相关文章:

ios - Swift:初始化数据并将其发送到不同的 Controller

c++ - 如何使用 Imebra 库从 jpeg 转换/创建 dicom 图像?

ios - Font 和 textColor 不见了 - 另一个 UITableViewCell awakeFromNib

ios - iOS9中如何调用NSObject类中的UIAlertviewController?

ios - 如何扩展相机的 View 以占据整个屏幕(如 Snapchat)?

ios - 如何将 ContextMenu 与 NavigationLink 一起使用?

objective-c - 观察 UITableViewController 的编辑属性

objective-c - NSNotificationCenter 和 Key Value Observing 技术有什么区别?

ios - UITableView 部分索引无法滚动到搜索栏索引

ios - 如何调试对象发送 KVO 通知的原因?