簡體   English   中英

ios未初始化實例變量的快速初始化

[英]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)
}

更多信息在這里:

https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_language/Initialization.html

在頁面上搜索兩階段初始化。

如果您需要調用super.init()(例如,如果test3依賴於它所做的事情),則可以在其聲明中為test3賦予一個初始值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM