在Swift中,willset和didset是否被视为闭包?

agy*_*agy 5 closures strong-references swift didset

我理解的目的willsetdidset我的我不知道,如果他们认为关闭。

如果它们是闭包,下面的代码是否应该产生强大的参考周期?

var myProperty : Int = 0 {
    didSet { self.callMyMethod() }
}
Run Code Online (Sandbox Code Playgroud)

jtb*_*des 5

不,它们不是闭包。您可以将其视为无法直接访问的一种特殊类型的功能。仅在属性更改时才调用它。(该函数名为myapp.MyStruct.myProperty.didset;您可以在调试器中看到它。)