gpt4 book ai didi

swift - KVO - change.newValue 和 change.oldValue 为零

转载 作者:行者123 更新时间:2023-12-03 09:16:57 31 4
gpt4 key购买 nike

我正在使用新的 KeyValue Observing。当变量发生变化时,我接到了我的观察者的电话,但 change struct 附带 newValueoldValue都为 nil ,所以它永远不会到达 //do something部分:

let observer = foo.observe(\.bar, options: [.new, .old]) { obj, change in
if change.kind == .setting && change.oldValue != change.newValue {
// do something
}
}

它曾经与执行 KVO 的旧方式完美配合。

作为示例,我使该代码更简单,这是我实际代码的调试。您可以看到 m对象具有 status var 已设置为 PREPARING但两者都是 change.oldValuechange.newValue为零:

enter image description here

最佳答案

这是一个 Swift 错误,已报告为 https://bugs.swift.org/browse/SR-5872 .正在讨论解决此问题的拉取请求 https://github.com/apple/swift/pull/20757但截至 2021 年 3 月尚未合并。

关于swift - KVO - change.newValue 和 change.oldValue 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47210513/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com