将字符串转换为枚举

时间:2018-10-29 19:04:15

标签: swift

我有以下情况

enum FooEnum: Int {
 fooCase = 1245325,
 fooCase2 = 3525325
}

我是否可以通过某种方式将字符串fooCasefooCase2传递给FooEnum类型和FooEnum来生成类型{{1} },其中包含以下枚举演示:FooEnumFooEnum.fooCase

PS:我无法将FooEnum.fooCase2更改为Int,因为我要保持整数的顺序。

示例:(伪代码)

String

FooEnum c = FooEnum("fooCase")选择了fooCase

1 个答案:

答案 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 ;)