Swift 2 では、文字列から列挙型を作成できますか?
enum Food : Int { case Pizza, Pancakes }
let str = "Pizza"
let food = Food(name:str) // for example
最後の行は機能しませんが、そのようなものを探しています。Java のように、 と言うことができますFood.valueOf("Pizza")。
編集:文字列を生の値として使用することはできません。
イアンの答えは素晴らしいですが、必要に応じて、失敗可能な初期化子を持つ列挙型を好むかもしれません:
enum Food: Int {
case Pizza, Pancakes
init?(name: String) {
switch name {
case "Pizza": self = .Pizza
case "Pancakes": self = .Pancakes
default: return nil
}
}
}
let pizzaString = "Pizza"
let food = Food(name: pizzaString) // returns .Pizza (optional)
print(food?.rawValue) // returns 0 (optional)