我需要声明一个变量,它将存储不同类型的枚举数组,例如:
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/