在我的应用程序中,我需要在加载 tableview 之前获得响应。我需要同时调用大约 20 个 API。并且每个 API 数据需要在 tableview 中显示每个 1 个单元格。
我需要在 Viewdidload 方法中调用它们,该方法在 tableview 方法之前调用。
谁能指导或提供一些有用的例子来做到这一点?
最佳答案
我的建议是为此使用 GCD 的组。
let backgroundQueue = DispatchQueue.global(attributes: .qosDefault)
let group = DispatchGroup()
var dataForTable:[String] = []
for number in 0..<n {
group.enter()
// Do your request with async callback, append data and leave GCD group.
backgroundQueue.async(group: group, execute: {
let newData = String()
dataForTable.append(newData)
group.leave()
})
}
group.notify(queue: DispatchQueue.main, execute: {
print("All requests data")
self.tableViewData = dataForTable
self.tableView.reloadData()
})
关于ios - 如何使用 Swift 在 iOS 中同时调用 20 个 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41160257/