Rob*_*b N 1 enums swift swift2
在Swift 2中,你可以用字符串创建一个枚举吗?
enum Food : Int { case Pizza, Pancakes }
let str = "Pizza"
let food = Food(name:str) // for example
Run Code Online (Sandbox Code Playgroud)
最后一行不起作用,但我正在寻找类似的东西.就像在Java中一样,你可以说Food.valueOf("Pizza")
.
编辑:我不能使用String作为原始值.
您可以为enum创建一个初始化程序,它将a 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
Run Code Online (Sandbox Code Playgroud)