获取swift中枚举类型的值
我正在尝试获取枚举的默认值,以便将其用作参数。此代码不起作用,但我希望得到如下结果:获取swift中枚举类型的值,swift,Swift,我正在尝试获取枚举的默认值,以便将其用作参数。此代码不起作用,但我希望得到如下结果: print("Param: \(Params.RCLoss.description)") 输出应为: Param: RC_LOSS_MAN 代码如下: enum Params { enum RCLoss: Int32, CustomStringConvertible { case disable = 0 case enable = 1 var description: Stri
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)
发件人:
可以使用枚举事例的rawValue属性访问其原始值
如果可以,我会使用枚举作为形式参数的类型,这样就不会有人向该函数传递无效值。另外,我假设您将一个枚举嵌套在一个空枚举中是有原因的…看起来您只需要
enum rcLoss: Int32 {
case disable = 0
case enable = 1
static var description: String {
return "RC_LOSS_MAN"
}
}
rcLoss是一种类型,说明必须是静态的,才能调用rcLoss.description。这意味着你不能使用CustomStringConvertible。您可以使用CustomStringConvertible将枚举值转换为字符串。。rawValue应返回Int32。Swift指南:您可以使用枚举事例的rawValue属性访问其原始值。Swift命名约定可能与之重复,即以大写字母enum开头命名所有枚举类型,并指定名称Params,我怀疑他们正在使用外部枚举作为属性,并且还有其他与问题无关的属性。仅此而已!非常感谢你!
enum rcLoss: Int32 {
case disable = 0
case enable = 1
static var description: String {
return "RC_LOSS_MAN"
}
}