Swift willSet/didSet 赋值?
Swift willSet/didSet assignment?
我想使用 didSet
/willSet
API 来观察 class 中几个属性的变化。但是我想保持我的属性声明部分干净,所以我想有单独的函数来实现这个逻辑。
现在我有这样的东西:
var myProperty: SomeType {
didSet {
handleDidSetMyProperty()
}
}
然而这会占用 5 行,如果你有更多这样的属性,这会是相当多的。如果我可以将其限制为 3 就好了,例如:
var myProperty: SomeType {
didSet = handleDidSetMyProperty
}
在 Swift 中有没有办法将 function/closure 分配给 属性 观察者?
不,你不能。请参阅 Swift 中的 Declarations
编程语言。
在“变量声明的语法”中,您会发现
didSet-clause → attributesopt didSet setter-nameopt code-block
和“代码块的语法”
code-block → { statementsopt }
即didSet
关键字后面只能跟一个代码块(带有
强制花括号)。
我想使用 didSet
/willSet
API 来观察 class 中几个属性的变化。但是我想保持我的属性声明部分干净,所以我想有单独的函数来实现这个逻辑。
现在我有这样的东西:
var myProperty: SomeType {
didSet {
handleDidSetMyProperty()
}
}
然而这会占用 5 行,如果你有更多这样的属性,这会是相当多的。如果我可以将其限制为 3 就好了,例如:
var myProperty: SomeType {
didSet = handleDidSetMyProperty
}
在 Swift 中有没有办法将 function/closure 分配给 属性 观察者?
不,你不能。请参阅 Swift 中的 Declarations 编程语言。
在“变量声明的语法”中,您会发现
didSet-clause → attributesopt didSet setter-nameopt code-block
和“代码块的语法”
code-block → { statementsopt }
即didSet
关键字后面只能跟一个代码块(带有
强制花括号)。