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