在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/