[英]ios swift init of uninitialized instance variable
對Swift有一個簡單的問題。 我有一個簡單的基類Base和一個子類ABase:
class Base {
var test1:Int
init(forTest test1:Int) {
self.test1 = test1
}
}
class ABase : Base {
var test3:Int
init(forAnother test3:Int) {
**super.init(forTest: test3)**
self.test3 = test3
}
}
我在ABase的init調用中的super.init(forTest:test3)行上收到編譯器錯誤。 錯誤是:
屬性'self.test3'不在super.init調用中初始化。
我試圖理解為什么我不能在Swift中使用未初始化的var來初始化對象?
Swift有兩個階段的初始化,您需要在執行其他任何操作之前初始化所有成員。
init(forAnother test3:Int) {
self.test3 = test3
super.init(forTest: test3)
}
更多信息在這里:
在頁面上搜索兩階段初始化。
如果您需要調用super.init()(例如,如果test3依賴於它所做的事情),則可以在其聲明中為test3賦予一個初始值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.