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