Ответ 1
В Swift типы перечислений не содержат информацию об индексе случаев (по крайней мере, не предоставляются для программистов).
Итак:
Как можно использовать переменную Swift типа String с помощью целочисленного индекса?
Ответ: "Вы не можете".
Вы можете привязать значения Int
(или перечисления) и String
значения разными способами, кроме как просто создать массив строк.
Например, если ваши связанные строки могут совпадать с метками case, вы можете написать примерно следующее:
enum MyEnum: Int {
case foo
case bar
case baz
var string: String {
return String(self)
}
}
if let value = MyEnum(rawValue: 0) {
print(value.string) //->foo
}
Если ваши строки должны быть немного сложнее отображать текст, вы можете использовать Swift Dictionary
для связывания случаев перечисления и строк.
enum AnotherEnum: Int {
case foo
case bar
case baz
static let mapper: [AnotherEnum: String] = [
.foo: "FooString",
.bar: "BarString",
.baz: "BazString"
]
var string: String {
return AnotherEnum.mapper[self]!
}
}
if let value = AnotherEnum(rawValue: 1) {
print(value.string) //->BarString
}
Немного читаем, чем простой массив строк.