Я пытаюсь представить меню действий, основанное на системе сортировки по основному типу и подтипу. Но у меня проблемы с перечислениями.
enum:
enum MaterialClassification: CaseIterable {
enum Main: String, CaseIterable {
case clay = "Clay"
case flux = "Flux"
case all = "All"
}
enum Sub {
enum Clay: String, CaseIterable {
case kaolin = "Kaolin"
case ballClay = "Ball Clay"
}
enum Flux: String, CaseIterable {
case flux = "Flux"
}
enum All: String, CaseIterable {
case all = "All"
}
}
}
переменные
// Filter:
var filterClass: MaterialClassification.Main = .all
var filterSubClass: MaterialClassification.Sub = .all // Not currently working
код
// Add Material Types:
for materialClassification in MaterialClassification.Main.allCases {
let newAction = UIAlertAction(title: materialClassification.rawValue, style: .default) { action -> Void in
self.filterClass = materialClassification.self
self.setFilterButtons(first: self.filterClass)
}
У меня есть 2 разные функции для создания листа действий. Первый работает отлично и использует l oop выше для циклического перебора всех случаев в MaterialClassification.Main.
Моя проблема заключается в попытке использовать тот же / аналогичный l oop, но затем нажмите на MaterialClassification.Sub вместо .Main (через var filterClass ?), чтобы получить правильный список дополнительных настроек.
Очевидно, я мог бы использовать переключатель для его жесткого кодирования, но это звучит не очень поучительно.