我在使用新的KVO语法时遇到了一些问题。根据苹果文档:
创建一个观察者,为其提供关键路径并调用observe(_:options:changeHandler)方法。有关关键路径的更多信息,请参见Keys and Key Paths。
class MyObserver: NSObject {
@objc var objectToObserve: MyObjectToObserve
var observation: NSKeyValueObservation?
init(object: MyObjectToObserve) {
objectToObserve = object
super.init()
observation = observe(\.objectToObserve.myDate) { object, change in
print("Observed a change to \(object.objectToObserve).myDate, updated to: \(object.objectToObserve.myDate)")
}
}
}
let observed = MyObjectToObserve()
let observer = MyObserver(object: observed)
observed.updateDate()
我正在进行观测初始化,代码如下:
self.observation = self.webView!.observe(\.webView.isLoading, changeHandler: { (webView, observedChange) in
//code
})
但是我遇到了这个错误:
self.observe(\.webView.isLoading, ...
。也就是说,如果self.webView
发生变化,你希望 KVO 自动停止观察旧的 web 视图并开始观察新视图的isLoading
属性。 - Ken Thomases