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

标签 swift enums swift-extensions

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

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

是否可以通过扩展专门为现有成员添加关联值?

最佳答案

不,你不能。想想看,currentState 枚举实际上只是一个受限的 Int。它甚至不是一个对象。

如果您需要更复杂的枚举,则需要包装给您的枚举。

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

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

关于swift - 是否可以通过扩展将关联值添加到现有的 Swift 枚举中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38504692/

相关文章:

swift - UIBezierPath 的快速替代品

javascript - 从 JSON 对象访问 javascript 中的 Enum

swift - 具有可选属性的 UIView 扩展

ios - 将类型传递给通用 Swift 扩展,或者理想地推断它

ios - 解析查询未按降序加载

swift - 确定 rootViewController 的类

ios - 如何在第一个 true if 语句执行后结束按钮的功能?

scala - 理解 scala 枚举

java - 枚举是否违反开放/封闭原则 Java?

ios - 复杂的 Swift 扩展