Я разрабатываю приложение для iOS с использованием swiftUI и Combine framework, а также MVVM. Я хочу обрабатывать запрос API входа в систему в отдельном классе LoginService, который используется в LoginViewModel. Теперь я хочу знать, как мне публиковать и наблюдать за атрибутами между представлением и ViewModel. Я имею в виду, что ViewModel является ObservableObject и наблюдается в представлении, но поскольку я обрабатываю сетевой запрос в классе службы, как LoginService должен уведомлять LoginViewModel и LoginView о том, что данные получены и представление должно быть обновлено?
import Foundation
import Combine
class LoginViewModel: ObservableObject {
@Published var user = UserModel()
@Published var LoginStatus: Bool = false
@Published var LoginMessage: String = ""
var service = LoginService()
func Login(With email: String, And password: String) -> Bool {
service.validateLogin(email: email, password: password)
return false
}
}
Это код для LoginViewModel. Как LoginService должен изменять значения LoginStatus, LoginMessage и user при получении данных с сервера для уведомления View? Я говорю это, потому что, насколько мне известно, вы можете наблюдать за ObservableObjects только в представлении (SwiftUI).