Код: Выделить всё
enum MyEnum: Int, CaseIterable {
case A = 0
case B = 1
case C = 2
case D = 3
case E = 4
//Each case needs its own number and description!
var description: String {
switch self {
case .A:
return "abc"
case .B:
return "bcd"
case .C:
return "cde"
case .D:
return "def"
case .E:
return "efg"
}
}
}
< /code>
... и хочу добавить описания в Pickerview < /code>. Я знаю, как настроить функции для представления, но теперь я застрял на подсчете случаев перечисления и добавление описаний. < /P>
Согласно документации и разным вопросам, Добавление Caseireateable < /code> должно позволить вызову < /p>
MyEnum.allCases.count
< /code>
... но я могу только получить доступ к Allcases < /code> из файла enum. Извне (так что из моего класса ViewController) я могу только позвонить myEnum.allcases Добавление этого кода (источник) в файл enum, по крайней мере, позволяет считать счет Случаи: < /p>
static let count: Int = {
var max: Int = 0
while MyEnum(rawValue: max) != .none { max += 1 }
return max
}()
< /code>
... но разве не должно быть более простого способа сделать это с помощью Swift 4.2+? < /p>
Как мне получить список описаний случаев, чтобы заполнить мой пикеерв (так «ABC», «BCD», ... - предпочтительно без жесткого кодирования)?
Подробнее здесь: https://stackoverflow.com/questions/556 ... om-outside
Мобильная версия