是否可以以一种不仅检测值是否更改,而且检测相同值是否再次设置的方式使用 KVO?我目前仅在值更改时才收到通知(与先前设置的不同)。每次设置值时我都需要接收通知(即使它与之前设置的值相同)。我怎样才能做到这一点?
我的代码:
private func addObserver() {
defaults.addObserver(self, forKeyPath: DefaultsKeys.testKey._key, options: .new, context: nil)
}
public override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
guard let value = change?[NSKeyValueChangeKey.newKey] as? Bool else { return }
statusCallback?(value)
}
private func removeObserver() {
defaults.removeObserver(self, forKeyPath: DefaultsKeys.testKey._key)
}