我理解willset
和didset
的目的我不确定他们是否被视为封闭。
如果它们是闭包,那么以下代码不应该产生强大的参考周期吗?
var myProperty : Int = 0 {
didSet { self.callMyMethod() }
}
答案 0 :(得分:4)
不,他们不是关闭。您可以将其视为一种无法直接访问的特殊功能;只有在属性发生变化时才会调用它。 (该函数名为myapp.MyStruct.myProperty.didset
;您可以在调试器中看到这一点。)