假设我有5个不同的字符串类型枚举,枚举1:字符串,枚举2:字符串...
我有一个数组Any,它的类型是5个枚举之一,有没有办法获得枚举数组的原始值而不将其转换为特定的枚举类型?
发布于 2017-07-19 17:15:42
您可以创建一个包含其他枚举值的新枚举类型,而不是将不同的枚举包装在一个包含Any的数组中。因此您始终是类型安全的,并且可以访问原始值。
enum Enum1: String {
case foo1 = "foo"
case foo2 = "foo2"
}
enum Enum2: String {
case bla1 = "bla"
case bla2 = "bla2"
}
enum EnumType {
case enum1(Enum1)
case enum2(Enum2)
case enum3(Enum2)
}
let array: [EnumType] = [
EnumType.enum1(.foo1),
EnumType.enum1(.foo2),
EnumType.enum2(.bla1)]
for item in array {
switch item {
case .enum1(let value):
print(value)
case .enum2(let value):
print(value)
case .enum3(let value):
print(value)
}
}发布于 2017-07-19 16:09:54
可以,您可以这样做:
Enum(rawValue:INDEX)举个例子,如果你有一个货币枚举:
public enum Currency : Int {
case EUR
case GBP
case SK
case NOK
case USD
public static let values : [Currency] = [EUR, GBP, SK, NOK, USD]}
你可以像这样得到这个值:
Currency(rawValue: 0)它将返回EUR。
https://stackoverflow.com/questions/45184509
复制相似问题