我需要声明一个变量,它将存储不同类型的枚举数组,例如:

var enums = [EnumTypeA.Option1, EnumTypeB.Option2]

编译器状态:



要将任何枚举或其他对象作为函数参数传递,这将是必需的。但是我发现我可以通过泛型来实现这一目标,例如:
func f1<T>(enum: T)

但是使用协议(protocol)和可选方法(以@objc为前缀)是不可能的。

最佳答案

您可以使用协议(protocol)...

protocol MyEnums {}

enum MyEnum1: MyEnums {
    case first, second
}

enum MyEnum2: MyEnums {
    case red, green
}

let myArray: [MyEnums] = [MyEnum1.first, MyEnum2.green]

func myFunc(myEnum: MyEnums) {
    print(myEnum)
}

for value in myArray {
    myFunc(myEnum: value)
}

关于ios - Swift-如何声明不同类型的枚举的变量/功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39027932/

10-10 19:19