首页 > 解决方案 > 快速获取枚举类型的值

问题描述

我正在尝试获取枚举的默认值,以便可以将其用作参数。这段代码不起作用,但我想得到类似的东西:

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)

标签: swift

解决方案


看来你只想

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.


推荐阅读