在Swift 3中,假设有一个系统定义的枚举(即我不控制源代码),如下所示:
enum currentState: Int {
case enabled
case disabled
case unknown
}
是否可以通过扩展名向现有成员添加关联值?
答案 0 :(得分:1)
不,你不能。想一想,currentState
enum真的只是一个受限制的Int
。它甚至不是一个对象。
如果你需要一个更复杂的枚举,你需要包装给你的那个。
注意:Swift扩展通常不能向基类型添加状态。例如。这也不起作用:
class A {}
extension A { var value : Int = 32 }