我正在使用新的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 错误,已报告为https://bugs.swift.org/browse/SR-5872。https://github.com/apple/swift/pull/20757正在讨论解决此问题的拉取请求,但截至 2021 年 3 月尚未合并。
| 归档时间: |
|
| 查看次数: |
679 次 |
| 最近记录: |