本文介绍了如何从Swift的原始值获取枚举?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从原始值获取枚举类型:
I'm trying to get enum type from raw value:
enum TestEnum: String {
case Name
case Gender
case Birth
var rawValue: String {
switch self {
case .Name: return "Name"
case .Gender: return "Gender"
case .Birth: return "Birth Day"
}
}
}
let name = TestEnum(rawValue: "Name") //Name
let gender = TestEnum(rawValue: "Gender") //Gender
但是,似乎 rawValue
对于具有空格的字符串不起作用:
But it seems that rawValue
doesn't work for string with spaces:
let birth = TestEnum(rawValue: "Birth Day") //nil
任何建议如何获得它?
推荐答案
太复杂了,只需将原始值直接分配给案例
Too complicated, just assign the raw values directly to the cases
enum TestEnum: String {
case Name = "Name"
case Gender = "Gender"
case Birth = "Birth Day"
}
let name = TestEnum(rawValue: "Name")! //Name
let gender = TestEnum(rawValue: "Gender")! //Gender
let birth = TestEnum(rawValue: "Birth Day")! //Birth
如果案例名称与原始值匹配,您甚至可以省略它
If the case name matches the raw value you can even omit it
enum TestEnum: String {
case Name, Gender, Birth = "Birth Day"
}
这篇关于如何从Swift的原始值获取枚举?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!