【发布时间】:2015-09-15 17:16:34
【问题描述】:
我对 Swift 中的 enum 有疑问。
我这样声明我的枚举:
enum FirstEnum : CustomStringConvertible {
case VALUE1
case VALUE2
case VALUE3
var description: String {
switch self {
case .VALUE1:
return "First value"
case .VALUE2:
return "Second value"
case .VALUE3:
return "Third value"
}
}
func getFromCode(value:String) -> FirstEnum? {
switch value {
case "v1":
return FirstEnum.VALUE1
case "v2":
return FirstEnum.VALUE2
case "v3" :
return FirstEnum.VALUE3
}
}
我需要从一个字符串(如字典)中获取枚举,所以我希望这行应该可以工作:
let foo = FirstEnum.getFromCode("v1")
但是 XCode (7) 期望方法 getFromCode 的 FirstEnum 参数,而不是方法定义中声明的 String,说:
无法将“字符串”类型的值转换为预期的参数类型 “第一个枚举”
为什么会这样?...我做错了什么?
【问题讨论】: