相关疑难解决方法(0)

KVO在斯威夫特工作一次

我正在尝试在Swift中使用KVO,但是方法"observeValueForKeyPath"被调用一次.

这是我的代码的GIST

我尝试使用NSNumber而不是Int添加所有选项addObserver,但是当我的视图加载时,该方法仍然会调用一次.

任何的想法 ?

编辑:似乎我找到了一个临时解决方案:

var lifes: Int {
    willSet {
        willChangeValueForKey("lifes")
    }
}
Run Code Online (Sandbox Code Playgroud)

xcode key-value-observing swift

6
推荐指数
1
解决办法
1094
查看次数

迅速-KVO-change.newValue和change.oldValue为零

我正在使用新的KeyValue观察。当变量更改时,我接到观察者的电话,但是该change结构附带了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
   }
}
Run Code Online (Sandbox Code Playgroud)

过去,它可以与旧的KVO方法完美配合。

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

在此处输入图片说明

swift

6
推荐指数
1
解决办法
679
查看次数

标签 统计

swift ×2

key-value-observing ×1

xcode ×1