我正在尝试获取枚举的默认值,以便可以将其用作参数。这段代码无法正常工作,但我想得到以下内容:
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)
答案 0 :(得分:1)
似乎您只想
enum rcLoss: Int32 {
case disable = 0
case enable = 1
static var description: String {
return "RC_LOSS_MAN"
}
}
rcLoss
是一种类型,description
必须为static
,您才能呼叫rcLoss.description
。这意味着您不能使用CustomStringConvertible
。您将使用CustomStringConvertible
将枚举值转换为String
。
答案 1 :(得分:0)
您可以使用其rawValue属性访问枚举案例的原始值。
set(parameterType: Params.rcLoss.description, parameterValue: Params.rcLoss.enable.rawValue)
尽管可以,但是我将枚举用作形式参数的类型,以使某人无法将无效值传递给该函数。我还假设您将一个枚举嵌套在原本为空的枚举中是有原因的...