我想通过使用 didSet
/willSet
API 观察类中几个属性的变化。但是我想保持我的属性声明部分干净,所以我想有单独的函数来实现这个逻辑。
现在我有这样的东西:
var myProperty: SomeType {
didSet {
handleDidSetMyProperty()
}
}
然而,这会占用 5 行,如果您有更多此类属性,这会相当多。如果我可以将其限制为 3 就好了,例如:
var myProperty: SomeType {
didSet = handleDidSetMyProperty
}
Swift 中有没有一种方法可以将函数/闭包分配给属性观察者?
最佳答案
不,你不能。参见 Declarations在 swift 编程语言。
在“变量声明的语法”中你会发现
didSet-clause → attributesopt didSet setter-nameopt code-block
和“代码块的语法”
code-block → { statementsopt }
即didSet
关键字后面只能跟一个代码块(带有
强制花括号)。
关于Swift willSet/didSet 赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50017893/