我正在尝试找出新的 KeyValueObserving (KVO) api。我不知道我做错了什么,因为我得到 initial
观察正常但不是 new
或 old
。这就是我正在做的:
import Foundation
class Foo: NSObject {
@objc var bar = 0
}
let foo = Foo()
let observer = foo.observe(\.bar, options: [.initial, .new, .old]) {(o, change) in
print("old: \(change.oldValue) - new: \(change.newValue) ")
}
foo.bar = foo.bar + 1
observer.invalidate()
我得到的输出是:
old: nil - new: Optional(0)
但我应该得到:
old: nil - new: Optional(0)
old: Optional(0) - new: Optional(1)
有什么想法吗?
最佳答案
记录在案here您需要在变量声明中添加 dynamic
关键字。
关于swift - 新的 Key-Value Observing (KVO) 只调用 .initial 而不是 .new,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209747/