Swift会设置/ didSet赋值吗?

时间:2018-04-25 08:50:29

标签: swift didset

我希望使用didSet / willSet API观察我班级中几个属性的更改。但是我想保持我的属性decelaration部分干净,所以我想有单独的函数来实现这个逻辑。

现在我有这样的事情:

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

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

var myProperty: SomeType {
    didSet = handleDidSetMyProperty
}

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

1 个答案:

答案 0 :(得分:3)

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

在“可变声明的格言”中你会发现

didSet-clause → attributes­opt ­didSet­ setter-name­­opt ­­code-block­

和“代码块的格式”

code-block → {­ statements­opt

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