我想观察Swift中一个类var的键值变化:
AVCaptureDevice.observe(.isCenterStageEnabled, options: [.new, .old]) { controller, value in
NSLog("Value (value)")
}
但是我得到构建错误:
Instance member 'observe' cannot be used on type 'AVCaptureDevice'; did you mean to use a value of this type instead?
Key path cannot refer to static member 'isCenterStageEnabled'
显然我可以使用旧的KVO方法addObserver和removeObserver,但现在我正试图慢慢摆脱所有这些遗留方法。在类对象上执行KVO的下一个最佳方法是什么?我看到observeValue方法,但不清楚如何在我的上下文中使用它,如果它比传统的addObserverAPI更好?
我认为你不能像文档中所说的那样在var类上添加观察者:
您可以在以下位置添加属性观察者:
- 您定义的存储属性
- 继承的存储属性
- 继承的计算属性