我有以下情况
enum FooEnum: Int {
fooCase = 1245325,
fooCase2 = 3525325
}
我是否可以通过某种方式将字符串fooCase
或fooCase2
传递给FooEnum
类型和FooEnum
来生成类型{{1} },其中包含以下枚举演示:FooEnum
或FooEnum.fooCase
PS:我无法将FooEnum.fooCase2
更改为Int
,因为我要保持整数的顺序。
示例:(伪代码)
String
FooEnum c = FooEnum("fooCase")
选择了fooCase
答案 0 :(得分:0)
就像结构和类一样,您可以向枚举添加初始化器
enum FooEnum: Int {
case fooCase = 1245325
case fooCase2 = 3525325
public init?(_ string: String) {
switch string {
case "fooCase": self = .fooCase
case "fooCase2": self = .fooCase2
default: return nil
}
}
}
let c = FooEnum("fooCase") // `FooEnum c =` is ObjC syntax ;)