Я хочу составить список из двух типов объектов (MotorBikeRow и WithFootBikeRow будут двумя немного разными представлениями строк в этом списке)
Я исхожу из Java и, естественно, я создам абстрактный класс под названием Bike. Таким образом, у меня есть список из двух (или, конечно, более) типов объектов:
@Binding var bikeList:[Bike]
Но проблема в том, как сделать этот «абстрактный класс» в Swift? В настоящее время я использую протокол под названием Bike, которому соответствуют две структуры MotorBike и WithFootBike.
List {
ForEach(...) i in {
if bikeList[i] is MotorBike {
MotorBikeRow(motorBike: $bikeList[i]) << error
} else {
WithFootBikeRow(withFootBike: $bikeList[i]) << error
}
}
}
Но мы сразу же видим проблему, если эти два представления запрашивают привязку. 1011 * Так вопрос
Как закинуть привязку с Bike на MorotBike / WithFootBike? Конечно, я использовал этот «трюк»: Как я могу использовать @Binding в Swift , но есть утечки памяти!
Это правильный SwiftUI / Swift подходить? Может быть, я совершенно ошибаюсь и слишком сильно под влиянием «Java», что не вижу более элегантного решения?