我有一个包含两个部分的表格视图
这两个部分包含来自两个不同网址的数据
我正在使用Alamofire从json下载内容。
第1节中的网址比第2节中的内容更多。这两个任务都是异步运行的
第2节的数据完成后,请重新加载表格视图。但是由于某种原因,我的section1数据被终止了,没有结果显示
请让我知道如何处理。下面是示例代码结构
let url1 = "https://xxxxxxxxxx.com"
Alamofire.request(url1)
.responseJSON { response in
guard let json = response.result.value as? [Any] else {}
//do parsing from json
mytableview.reloadData()
}
let url2 = "https://yyyyyyyyy.com"
Alamofire.request(url2)
.responseJSON { response in
guard let json = response.result.value as? [Any] else {}
//do parsing from json
mytableview.reloadData()
}
就我而言,来自url2的数据正在快速获取和解析json,并且正在reloadingtableview中。这样做时,url1仍在解析数据
在所有解析完成后,如何一次显示url1,url2数据。请指教
答案 0 :(得分:1)
使用DispatchGroup
:
let group = DispatchGroup()
let url1 = "https://xxxxxxxxxx.com"
group.enter()
Alamofire.request(url1)
.responseJSON { response in
guard let json = response.result.value as? [Any] else {}
//do parsing from json
group.leave()
}
let url2 = "https://yyyyyyyyy.com"
group.enter()
Alamofire.request(url2)
.responseJSON { response in
guard let json = response.result.value as? [Any] else {}
//do parsing from json
group.leave()
}
group.notify(queue: DispatchQueue.main) {
mytableview.reloadData()
}