@shevzoom
 dev., student at MEPhI

Как передать данные во viewModel?

Есть две переменные
private var result = [Company]()
 private var viewModels = [NewsTableViewCellViewModel]()


Структура
struct APIResponce: Codable {
    let company: Company
}

struct Company: Codable {
    let name: String
    let employees: [Employee]
}


Возникла ошибка в функции
private func fetchPeople(completed: ((Bool) -> Void)? = nil) {
        APICaller.shared.getTopStories { [weak self] json in
            switch json {
            case .success(let result):
                self?.result.append(contentsOf: result)
                
// не могу положить данные 
  //              self?.viewModels.append(contentsOf: result ({ viewModels in
  //                  return NewsTableViewCellViewModel()
 //               }))
                
            }
        }
    }


Я попробовал сделать так, но не вышло
613ccc5cdf338599392990.png

Я понимаю, что это проблемы от плохого понимания синтаксиса, но можете указать из-за чего ошибка, не понимаю как передать данные во viewModel

Подозреваю, что надо возвращать не result в клоужере, а что то другое
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
briahas
@briahas
ObjC, Swift, Python
Вчитайтесь в текст ошибки - там написано, что не получается присвоить объект типа ТИП типу [ТИП].
Т.е. - банальное не соответствие типов. Вы пытаетесь один объект присвоить переменной которая содержит в себе массив объектов.

upd. Ошибку нашли - skills это массив, а автор в него строчку присваивал.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы