获取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"
  }
}