Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift-新键值观测(KVO)仅调用.initial而非.new_Swift - Fatal编程技术网

swift-新键值观测(KVO)仅调用.initial而非.new

swift-新键值观测(KVO)仅调用.initial而非.new,swift,Swift,我正试图找出新的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

我正试图找出新的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) 

有什么想法吗?

如文件所述,您需要在变量声明中添加
dynamic
关键字。

如文件所述,您需要在变量声明中添加
dynamic
关键字。

的可能重复。的可能重复。谢谢!!!也许你可以帮我做这个,我想它已经可以与
动态
一起使用了。如果没有,请张贴整个样品。谢谢!!!也许你可以帮我做这个,我想它已经可以与
动态
一起使用了。如果没有,请张贴整个样本。