1
在我有一個let
變量被聲明爲&的變量的基礎類中被初始化的情況下,我被卡住了。我需要在擴展此基類的其他類中的一箇中傳遞不同的枚舉。我們可以在swift中從基類訪問重寫的類函數嗎?
所以,我試圖在基類中創建一個類函數,以便我可以覆蓋並返回一個不同的枚舉類型。但有什麼辦法可以從基類訪問擴展類?
創建了一個示例代碼,說明您:
class A {
var string: String {
get {
// Is it possible to refer to the class type dynamically here ?
// So that it would call B's printMessage
return A.printMessage("Hello")
}
}
class func printMessage(message: String) -> String {
return "You shall not pass !"
}
}
class B: A {
override class func printMessage(message:String) -> String {
return message + "World !"
}
}
let obj = B()
print(obj.string)
我用'A.dynamicType' :(想雖然我不知道是怎麼回事。可能在調用'super.init'之前訪問初始化器中的'self.dynamicType'編譯器總是抱怨在調用'super.ini'前無法訪問'self'但在這種情況下不能訪問? – GoodSp33d
在您的情況下,您不訪問dynamicType在初始化之前,你首先初始化這個對象,然後引用一個計算出來的屬性,然後只是th它訪問dynamicType –