ios - 如何使用 Swift 在 iOS 中同时调用 20 个 Web 服务?

标签 ios swift uitableview

在我的应用程序中,我需要在加载 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/

相关文章:

ios - WatchKit 2.0 检测何时收到 APNS

ios - 旋转时自动调整 UITableView 标题的大小(iPad 上的 MoSTLy)

ios - TableView限制使用(Swift)

ios - iOS 7 下的 SSL 错误

ios - WKWebView 函数用于检测 URL 是否已更改

iphone - 在 Objective C 中查询数组(如 MySQL)

ios - Xcode 10 beta2 : Cannot invoke initializer for type 'UIView' with no arguments

iOS7 - TableView 标题中的多行文本?

IOS调用号码并输入代码

ios - 如何使用 Swift 4 将字符串拆分为英语和非英语?