是否可以通过扩展将相关值添加到现有的Swift枚举?

时间:2016-07-21 12:47:22

标签: swift enums swift-extensions

在Swift 3中,假设有一个系统定义的枚举(即我不控制源代码),如下所示:

enum currentState: Int {
  case enabled
  case disabled
  case unknown
}

是否可以通过扩展名向现有成员添加关联值?

1 个答案:

答案 0 :(得分:1)

不,你不能。想一想,currentState enum真的只是一个受限制的Int。它甚至不是一个对象。

如果你需要一个更复杂的枚举,你需要包装给你的那个。

注意:Swift扩展通常不能向基类型添加状态。例如。这也不起作用:

class A {}
extension A { var value : Int = 32 }