Можно ли заставить перечисляемые типы хранить их в коллекции в Swift 4? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть несколько типов 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 кажется более интуитивным в этом контексте.(по крайней мере для меня)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...