6
例如,我想调用一个类实例的方法,该方法会将willSet
添加到属性中。我不想在属性声明中指定willSet
,因为我需要在观察者中添加条件逻辑,并且对于没有调用此方法的其他每个实例都会不必要地运行。在初始声明之后可以添加属性观察者吗?
事情是这样的:
var someProperty: Int
func someMethod() {
someProperty { // this is the syntax/ability I'm unsure about
willSet { ...add some behavior... }
}
...more stuff...
}
啊,所以这不是我询问的方式的本地功能。这个解决方案没有解决我所关心的两个问题:每个实例都必须运行'willSet'及其中的结果条件。我希望有一种方法让实例根本没有'willSet',除非他们稍后添加了这个观察者。 – solidcell 2014-10-20 00:15:11
您对性能的关注吗?因为在上面的例子中,如果可选闭包不为零,并且检查闭包!= nil具有可忽略的性能分支,则只会执行代码。 – cmyr 2014-10-22 15:08:43
这部分是探索语言。然而,作为一个例子,我正在考虑一个情况,我想添加一个扩展来封装一些逻辑,并且属性观察者应该被分组在同一个扩展中。 – solidcell 2014-10-23 20:07:14