我应该如何正确设置以在单例的共享实例上的变量发生更改时接收通知?目前,该 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/