我正在使用新的KeyValue观察。当变量更改时,我接到观察者的电话,但是该change结构附带了newValue,oldValue两者都为nil,所以它永远不会起作用//do something:
let observer = foo.observe(\.bar, options: [.new, .old]) { obj, change in
if change.kind == .setting && change.oldValue != change.newValue {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
过去,它可以与旧的KVO方法完美配合。
作为示例,我使该代码更简单,这是对我的实际代码的调试。你可以看到,m对象具有status变种已被设置为PREPARING,但两者change.oldValue并change.newValue是零:
swift ×1