比方說,我在斯威夫特下面的類(其中有明顯的問題)呼叫方法
class MyClass {
let myProperty: String
init() {
super.init()
self.setupMyProperty()
}
func setupMyProperty() {
myProperty = "x"
}
}
這是過於簡化,但基本上,我想的myProperty
初始化委派到setupMyProperty()
方法。這是我經常用來分解課堂設置不同部分的模式。
但是當然,我不能調用self
,直到超級初始化器運行,並且我不能運行超級初始化器,直到所有的屬性都被設置好,所以我在catch 22上。因爲setupMyProperty()
不被視爲初始化程序,所以無論如何都無法分配myProperty
。
誰能告訴我如何在Swift中實現這個模式?
我不知道這是否適合你,但你可以在聲明屬性時分配一個值。 'let myProperty:String =「x」' –
是的,我使用它是有道理的。但是,如果這些東西是基於初始值設定項的參數進行初始化的,則初始值設定項會變得混亂。我想這是一個跡象,我的班級有太多屬性。 – mprivat
查看WWDC會話403:中級Swift,大約29分鐘在涵蓋類初始化。 – DogCoffee