我希望使用didSet
/ willSet
API观察我班级中几个属性的更改。但是我想保持我的属性decelaration部分干净,所以我想有单独的函数来实现这个逻辑。
现在我有这样的事情:
var myProperty: SomeType {
didSet {
handleDidSetMyProperty()
}
}
然而,这需要5行,如果你有更多这样的属性,这是相当多的。如果我可以将其限制为3,那就太好了,例如:
var myProperty: SomeType {
didSet = handleDidSetMyProperty
}
Swift中有没有办法为属性观察者分配函数/闭包?
答案 0 :(得分:3)
不,你不能。请参阅Swift中的Declarations 编程语言。
在“可变声明的格言”中你会发现
didSet-clause → attributesopt didSet setter-nameopt code-block
和“代码块的格式”
code-block → { statementsopt }
即。 didSet
关键字后面只能跟一个代码块(带有
强制性花括号)。