Я ищу решение с View и полиморфизмом. У меня есть протокол со специальной ViewModel, такой как:
protocol PQuestionView: View {
associatedtype VM where VM : BaseQuestionViewModel
var vm: Self.VM { get }
}
, поэтому я могу использовать его в такой структуре:
struct test: PQuestionView {
var vm:YesNoQuestionViewModel = YesNoQuestionViewModel(question: Question(), temporaryId: 3)
var body: some View{
VStack{
Text("Yes")
}
}
}
Я хочу иметь массив PQuestionView:
var questionViews: [PQuestionView]
Но у меня есть два связанных типа, кажется, что способ реализации представления не работает как полиморфизм. Поэтому я попробовал что-то вроде этого:
struct StrongView<MyView: View,VM: BaseQuestionViewModel> : PQuestionView{
var vm: VM
var body: MyView
}
Но у него есть строго типизированная структура, и она не отвечает на мою проблему универсальности ... Есть ли хорошее решение для этой работы?