gpt4 book ai didi

iOS - 如何等待在 dataTask 上下载数据

转载 作者:行者123 更新时间:2023-11-28 10:08:15 24 4
gpt4 key购买 nike

我的应用正在从 API 下载一些数据,我想将该数据保存在一个数组中,该数组将用于填充表格 View 。但是当 TableView 开始构建时,数据还没有下载,我的数组是空的。

 var recipes: [Recipe] = []

func getData(completionHandler: @escaping ([Recipe]) -> Void) {
let urlString = "api_url"

guard let url = URL(string: jsonURL) else { return }

URLSession.shared.dataTask(with: url) { (data, response, err) in

guard let data = data else { return }
do {
let recipes: [Recipe] = try JSONDecoder().decode([Recipe].self, from: data)
DispatchQueue.main.async {
self.recipes = recipes
}
} catch {

}
}.resume()
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.recipes.count
}

最佳答案

您必须重新加载表格 View 。在您的 do block 中,将您的代码更改为以下内容:

self.recipes = try JSONDecoder().decode([Recipe].self, from: data)
DispatchQueue.main.async {
self.tableView.reloadData()
}

关于iOS - 如何等待在 dataTask 上下载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50950400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com