我正在尝试从原始值中获取枚举类型:
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
不适用于带空格的字符串:
let birth = TestEnum(rawValue: "Birth Day") //nil
有什么获取方法的建议吗?
最佳答案
太复杂了,直接把原始值赋值给case
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
如果案例名称与原始值匹配,您甚至可以省略它
enum TestEnum: String {
case Name, Gender, Birth = "Birth Day"
}
在 Swift 3+ 中,所有枚举大小写都是小写
关于ios - 如何从 Swift 中的原始值获取枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184795/