[img]https:/ /i.sstatic.net/QsjQi7Vnm.png[/img]

Чтобы добиться этого, я создал вложенные классы/структуры:
Код: Выделить всё
class Filters {
// Other types of filters, like date, etc.
var listFilters: [String:ListFilter] = [:]
}
struct ListFilter {
var name: String
var items: [String: FilterShowAndOn]
}
struct FilterShowAndOn {
var showFilter: Bool
var filterOn: Bool
}
Код: Выделить всё
func initFilters() -> Filters{
let filters = Filters()
filters.listFilters["Type"] = ListFilter(name: "Type", items:
["Vegetable": FilterShowAndOn(showFilter: true, filterOn: true),
"Fruit":FilterShowAndOn(showFilter: true, filterOn: true)])
filters.listFilters["Color"] = ListFilter(name: "Color", items:
["Red": FilterShowAndOn(showFilter: true, filterOn: true),
"Green":FilterShowAndOn(showFilter: true, filterOn: true),
"Red":FilterShowAndOn(showFilter: true, filterOn: true)])
return filters
}
Код: Выделить всё
struct FiltersView: View {
@Binding var filters: Filters
var body: some View {
Section("Type"){
ForEach(filters.listFilters["Type"]!.items.keys.sorted(), id:\.self){ key in
Toggle(key, isOn: $filters.listFilters["Type"].items[key].filterOn)
}
}
}
}

< /p>
Я пробовал свернуть/развернуть, но ошибок стало больше. Я новичок в Swift, поэтому не совсем понимаю, что происходит

Подробнее здесь: https://stackoverflow.com/questions/786 ... ues-with-w