У меня есть несколько типов Enum, которые соответствуют определенному протоколу, и я хочу сохранить их типы в одном массиве.Но я не могу найти способ сделать это.
Вот упрощенный код.
protocol TestEnumProtocol {
static var name: String { get }
static var count: Int { get }
}
enum Test1 : TestEnumProtocol {
static var name: String { return "Test1" }
static var count: Int { return 2 }
case A
case B
}
enum Test2 : TestEnumProtocol {
static var name: String { return "Test2" }
static var count: Int { return 3 }
case AA
case BB
case CC
}
var enums: [TestEnumProtocol.self] = [Test1.self, Test2.self] // Compile Error
По сути, мне нужно выполнить несколько многовариантных тестов, и я хочу сделать свою логику общей.
Я знаю, что могу добиться этого с помощью классов, но мне интересно,есть способ с enums, потому что Enum кажется более интуитивным в этом контексте.(по крайней мере для меня)