5

我了解其目的,willsetdidset我不确定它们是否被视为关闭。

如果它们是闭包,那么下面的代码不应该产生一个强引用循环吗?

var myProperty : Int = 0 {
    didSet { self.callMyMethod() }
}
4

1 回答 1

5

不,它们不是闭包。你可以把它想象成一种不能直接访问的特殊类型的函数;它只会在属性更改时调用。(该函数名为myapp.MyStruct.myProperty.didset;您可以在调试器中看到它。)

于 2015-07-23T06:32:25.687 回答