swift - 快速获取枚举类型的值
问题描述
我正在尝试获取枚举的默认值,以便可以将其用作参数。这段代码不起作用,但我想得到类似的东西:
print("Param: \(Params.RCLoss.description)")
输出应该是:
Param: RC_LOSS_MAN
这是代码:
enum Params {
enum RCLoss: Int32, CustomStringConvertible {
case disable = 0
case enable = 1
var description: String {
return "RC_LOSS_MAN"
}
}
}
我希望能够通过这个:
set(parameterType: Params.RCLoss.description, parameterValue: Params.RCLoss.enable)
这应该对应于正在设置的这些值:
set(parameterType: "RC_LOSS_MAN", parameterValue: 0)
解决方案
看来你只想
enum rcLoss: Int32 {
case disable = 0
case enable = 1
static var description: String {
return "RC_LOSS_MAN"
}
}
rcLoss
is a type, description
has to be static
for you to be able to call rcLoss.description
. And that means you cannot use CustomStringConvertible
. You would use CustomStringConvertible
to convert enum values to a String
.
推荐阅读
- emacs - Emacs Lisp 在更改缓冲区后通过开始和结束选择区域
- javascript - 在javascript中搜索对象中的对象数组
- mysql - 检查与您的 mysql 服务器版本相对应的手册,以获取在 '( - 附近使用的正确语法
- sql - INSERT ALL with ID using DEFAULT ON NULL 失败 PK Constraint
- ios - 似乎无法创建 Xcode 扩展
- python - 如何修复 Python 中的“AffinityPropagation 对象不可调用”错误
- sql - ORA-00972: 创建别名时指定了超过 30 个字符的标识符
- reactjs - 有人可以打开仅适用于经过身份验证的用户的 React 组件吗
- x86 - 内存屏障的传递性/累积性属性是如何在微架构上实现的?
- selenium - 无法单击框架中的链接