#swift
#swift
Вопрос:
У меня есть ViewModel, который получает профиль пользователя через вызов API. Я хочу установить переменную в ViewModel, чтобы я мог использовать переменную в другом месте. Код выглядит следующим образом:
class UserProfileViewModel {
let userId: String
private let getUserProfile: GetUserProfile
init(getUserProfile = GetUserProfile()) {
self.getUserProfile = getUserProfile
updateData()
}
func updateData() {
getUserProfile.start().done {
[weak self] userProfile in
guard let userProfile = userProfile else { return }
// Should assign the userProfile.id to self.memberId
}
}
он возвращает мне эту ошибку Return from initializer without initializing all stored properties
Мне нужно инициализировать общедоступную переменную в init, но фактические данные получены из вызова API, есть ли какой-либо способ добиться этого?
Ответ №1:
Сделайте ее необязательной (и обновите весь зависимый код), например
class UserProfileViewModel {
var userId: String?
...