1

我想通过使用didSet/ willSetAPI 来观察类中几个属性的变化。但是我想保持我的属性声明部分干净,所以我想有单独的函数来实现这个逻辑。

现在我有这样的事情:

var myProperty: SomeType {
    didSet {
        handleDidSetMyProperty()
    }
}

然而,这需要 5 行,如果你有更多这样的属性,这相当多。如果我可以将其限制为 3,那就太好了,例如:

var myProperty: SomeType {
    didSet = handleDidSetMyProperty
}

Swift 中有没有办法将函数/闭包分配给属性观察者?

4

1 回答 1

4

不,你不能。请参阅Swift 编程语言中的声明

在“变量声明的语法”中你会发现

didSet 子句 → 属性opt didSet setter-name opt代码

在“代码块的语法”中</p>

代码块 → { statements opt }

didSet关键字后面只能跟一个代码块(带有强制大括号)。

于 2018-04-25T09:07:17.650 回答