在文件A中我定义了我的var:
var playBegin = false
稍后在函数结尾处的同一文件中:
var playBegin = true
在档案B中:
struct pbVariableCheck {
var playBegin: Bool {
didSet {
if playBegin == true {
println("\(playBegin)")
}
}
}
}
但是我的财产观察员在这里不承认变化,因此没有观察到结果?我能做错什么?
答案 0 :(得分:1)
您每次使用playBegin
重新声明var
。在分配时使用playBegin = true
。
您只能观察类或结构的属性而不是全局变量。因此,如果您全局更改属性,它将不会通知您的本地类,并且当您在类或类的实例的方法中进行更改时将通知您。 / p>
struct pbVariableCheck {
var playBegin: Bool {
didSet {
if playBegin == true {
println("\(playBegin)")
}
}
}
}
//In file A:
class A {
init() {
var a = pbVariableCheck(playBegin: false)
a.playBegin = true //Change the value on instance of `pbVariableCheck`
}
}
答案 1 :(得分:0)
尝试将var var playBegin = true
更改为playBegin = true
,前者定义一个新的局部变量。