如何在Swift中为特定的Enum案例定义func?

时间:2016-05-11 03:59:08

标签: swift enums

enum Type {
    case A
    case B

    func do() {

    }
}

我想为案例A提供

1 个答案:

答案 0 :(得分:0)

我不认为你想要的是枚举。

但是,可以通过技巧来完成。

首先,创建一个名为Type的类:

class Type { private init() {} }

创建两个类ATypeBType以继承Type

// Put this in the same file as Type
class AType: Type { private init() {} }
class BType: Type { private init() {} }

私有初始值设定项是为了防止外部代码创建ATypeBType个对象。

Type中,添加以下静态属性:

static let A = AType()
static let B = BType()

然后你基本完成了!

要添加只有Type.A可访问的方法,只需将其添加到AType类中即可!

这样,就像枚举一样,Type.AType.B仍然可以分配给Type对象!