Gui*_*rme 26 key-value-observing swift swift4
如果我存储这样的观察者:
let observer: NSKeyValueObservation = foo.observe(\.value, options: [.new]) { (foo, change) in
print(change.newValue)
}
Run Code Online (Sandbox Code Playgroud)
observer一旦我不再需要它,如何删除/禁用/清除?
我的foo实例没有remove接收NSKeyValueObservation实例的任何类似方法,它observer本身也没有任何remove类似的实例.
mat*_*att 31
在iOS 11中,您不必这样做.只是让观察者超出范围.让观察者在观察之前死亡或者让观察者在观察者面前死亡,不再有任何惩罚,所以你没有实际的工作要做.
另一方面,如果你真的想取消注册观察者,将其从保留它的任何东西中删除,或告诉它invalidate.(必须保留它,因为如果你不坚持观察者,它将会死亡,你的观察者功能永远不会被调用.)
(你说"如果我存储一个这样的观察者",但你存储它的方式let是一种存储观察者的方式.最好把它放在一个Set中,你可以在以后删除它,或者至少将它存储在var您以后可以设置的Optional 中nil.)
| 归档时间: |
|
| 查看次数: |
8434 次 |
| 最近记录: |