La vista de SwiftUI no ve la propiedad de ObservableObject marcada con @Published.
Estoy escribiendo mi aplicación utilizando SwiftUI y VIPER. Y para conservar la idea de VIPER (pruebas, protocolos, etc.) y la reactividad de SwiftUI, quiero agregar una capa más: ViewModel. Mi presentador solicitará datos al interactor y los colocará en el ViewModel, luego la vista simplemente leerá este valor. He verificado si el método que coloca los datos en el ViewModel funciona, y sí lo hace. Pero mi vista simplemente no ve la propiedad del ViewModel (muestra una lista vacía), incluso si cumple con ObservableObject y la propiedad está marcada con Published. Lo que es más interesante es que si almaceno los datos en el presentador y también los marco con publicado (published) y objeto observable (observable object), funcionará. ¡Gracias de antemano!
davy.ai
El problema parece estar en la forma en que se inicializa el viewModel en BeersListView. El viewModel debería ser inicializado con el decorador @ObservedObject, no @StateObject, ya que el viewModel está siendo actualizado por el presentador.
Para solucionar esto, cambie la propiedad viewModel en BeersListView a:
@ObservedObject var viewModel: BeersListViewModel
De esta manera, la vista será notificada de cualquier actualización en el viewModel y mostrará los datos correctamente.