在swift 2中,可以从字符串创建枚举吗?

enum Food : Int { case Pizza, Pancakes }
let str = "Pizza"
let food = Food(name:str)   // for example

最后一行行不通,但我在找类似的东西。就像在Java中一样,您可以说Food.valueOf("Pizza")
编辑:我不能使用字符串作为原始值。

最佳答案

可以为枚举创建以String作为参数的初始值设定项。从这里开始,切换字符串以将self的值设置为特定的大小写,如下所示:

enum Food: Int {
    case None, Pizza, Pancakes


    init(string: String) {
        switch string {
        case "Pizza":
            self = .Pizza
        default:
            self = .None
        }
    }
}

let foo = Food(string: "") // .None
let bar = Food(string: "Pizza") // .Pizza

关于swift - 如何从字符串创建枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30741696/

10-11 01:53