2
我有一個包含一個枚舉的結構:找不到枚舉一個名爲Type
public struct TemperatureUnit : Unit
{
public enum Type
{
case Celsius
case Fahrenheit
}
public var type:Type
public init(type:Type)
{
self.type = type
}
public func getFormattedStringForValue(value:Int) -> String
{
if (self.type == .Celsius)
{
return "\(value) °C"
}
else
{
return "\(value)°"
}
}
}
當我嘗試在代碼中的其他地方使用的枚舉,編譯器給我一個錯誤。這個問題似乎與用於枚舉的名稱有關,因爲當我重命名它時錯誤消失。
例如與命名爲ENUM類型:
TemperatureUnit(type: TemperatureUnit.Type.Celsius) // Error
使用智能感知,TemperatureUnit顯示類型屬性,又具有Type屬性[...]這些類型的屬性都具有一個類型屬性韓元讓我訪問我的實際枚舉類型。
錯誤:不能調用類型 'TemperatureUnit' 初始化與類型的參數列表 '(類型:TemperatureUnit)' 與枚舉
工作示例類名爲:
TemperatureUnit(type: TemperatureUnit.Kind.Celsius)
有誰知道爲什麼名爲Type的枚舉不起作用?
編輯:
類型是一個保留關鍵字,我們可以發現有以下幾個環節。 (DOC蘋果的信息,在 「關鍵字和標點符號」)
- 並非官方數據:https://swift.unicorn.tv/articles/reserved-words-in-swift-and-how-to-escape-them
- https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/LexicalStructure.html#//apple_ref/doc/uid/TP40014097-CH30-ID410
查看[this](https://swift.unicorn.tv/articles/reserved-words-in-swift-and-how-to-escape-them)瞭解更多信息! – Kilenaitor
偉大的鏈接!這是一種遺憾,我無法在Swift文檔中找到保留的關鍵字。也許我沒有看到這個好地方。 –
是的。必須保持警惕,因爲他們有時會改變。特別是因爲它太新了。如果您有任何其他問題,請告訴我!否則,如果你能接受答案,那會很棒。 :) – Kilenaitor