In Swift, Aufzählungstypen nicht halten seinen Index Info der Fälle (zumindest nicht für Programmierer zur Verfügung gestellt).
So:
Wie kann ein Swift Enum von String-Typ durch Integer-Index verwendet werden?
Die Antwort lautet „Sie können nicht“.
können Sie binden Int
(oder Enum-Fälle) und String
Werte in vielerlei Hinsicht anders als nur ein Array von Strings erstellen ..
Zum Beispiel, wenn Ihre gebundenen Strings können die gleiche sein wie
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
}
Wenn Ihr Strings sein müssen, ein wenig komplexer anzuzeigen Text, können Sie uns: Fall Etiketten, können Sie so etwas schreiben e Swift Dictionary
, um Enum Cases und Strings zu binden.
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
}
Ein wenig besser lesbar als ein einfaches Array von Strings.
Sehr schön, danke :) – jarryd