У меня есть структура, которая содержит перечисление:Не может найти Enum с именем типа
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)°"
}
}
}
Когда я пытаюсь использовать перечисление где-то в коде, компилятор дает мне ошибку. Проблема связана с именем, используемым для перечисления, поскольку ошибка исчезает, когда я переименовываю его.
пример с перечислением имени как Тип:
TemperatureUnit(type: TemperatureUnit.Type.Celsius) // Error
Использование IntelliSense, TemperatureUnit показывает тип собственности, который, в свою очередь, имеет свойство Type [...], и эти свойства типа все имеющие тип собственности вон 'Позвольте мне получить доступ к моим фактическим типам перечислений.
Ошибка:Не удается вызвать инициализатор для типа 'TemperatureUnit' со списком аргументов типа '(тип: TemperatureUnit)'
рабочий пример с перечислением назван Вид:
TemperatureUnit(type: TemperatureUnit.Kind.Celsius)
Кто-нибудь знает, почему перечисление с именем Тип не будет работать?
EDIT:
Тип зарезервированное слово, как мы можем узнать, со следующими ссылками. (Информация от Apple Дока находится под "Ключевые слова и пунктуация")
- Не официальная: 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
См. [Это] (https://swift.unicorn.tv/articles/reserved-words-in-swift-and-how-to-escape-them) для получения дополнительной информации! – Kilenaitor
отличная ссылка! Жаль, что я не смог найти зарезервированные ключевые слова в документе Swift. Возможно, я не смотрел на хорошее место. –
Да. Нужно следить за тем, как они иногда меняются. Быстро, особенно потому, что это так ново. Если у вас есть другие вопросы, дайте мне знать! В противном случае, если бы вы могли принять ответ, это было бы здорово. :) – Kilenaitor