Сохранение ответа от Alamofire


#1

Здравствуйте, столкнулся с проблемой пока работал с API, данные я получаю и записываю в переменную но когда пытаюсь их вевести пишет что их нет

    var array = [Launch]()
override func viewDidLoad() {
    super.viewDidLoad()

    getLaunch(url: getUrl)
}

func getLaunch(url: String){
    AF.request(url).responseDecodable(of: [Launch].self){ (response) in
        guard let data = response.data else {return}
        do{
            let cont = try JSONDecoder().decode([Launch].self, from: data)
            self.updateLaunch(json: cont)
        }catch{
            print(error.localizedDescription)
        }
    }
}
func updateLaunch(json:[Launch]){
    for valuer in json{
        self.array.append(valuer)
    }

    print(array.count) // выводит 184

}

Функция вывода данных

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let myCell = collectionView.dequeueReusableCell(withReuseIdentifier: "LaunchCell", for: indexPath) as! LaunchCell
    
    print(array.count) //выводит 0

    myCell.configure(label: array.first?.name ?? "nil")
    return myCell
}

Я не понимаю почему данные не получается вывести. Код вроде написал правильно


#2

в функции updateLaunch после цикла перезагрузите коллекцию


#3

Спасибо, помогло теперь все выводит


#4

эта запись уже устаревшая, можно проще

array.append(contentsOf: json)