从多个URL解析JSON后显示视图

时间:2019-05-14 19:48:58

标签: ios swift

我有一个包含两个部分的表格视图

这两个部分包含来自两个不同网址的数据

我正在使用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数据。请指教

1 个答案:

答案 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()
}