Почему передача модели представления как универсальной работает с протоколом, но вывод типа не работает для ObservedObjeIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Почему передача модели представления как универсальной работает с протоколом, но вывод типа не работает для ObservedObje

Сообщение Anonymous »


Итак, у меня есть модель представления, соответствующая протоколу SwiftUI, и я не понимаю, почему следующий вариант не работает, а другой вариант работает.

протокол SummaryViewModelProtocol: ObservableObject { var textValueString: String {получить установку} } класс SummaryViewModel: SummaryViewModelProtocol { частные отменяемые переменные: Set = [] @Published частная переменная textValuePublisher: String = "" вар textValueString: String = "" в этом() { настройкаПодписчики() } } структура ContentView: Просмотр { @ObservedObject var viewModel: SummaryViewModelProtocol = SummaryViewModel() var body: some View { ВСтек { Текст(viewModel.textValueSring) } .padding() .onAppear { представлениеМодель.loadData() } } } Когда он у меня есть, я получаю сообщение об ошибке: Тип «any SummaryViewModelProtocol» не может соответствовать «ObservableObject»

но если мое представление использует дженерики, то у меня нет следующей ошибки?
struct ContentViewNoError: Просмотр, где Модель: SummaryViewModelProtocol { @ObservedObject var viewModel: Модель инициализация (viewModel: Модель) { self.viewModel = модель просмотра } var body: some View { Текст (viewModel.textValueString) } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»