需求:如若详情页面有多个请求,需要所有的请求都请求完成,再同意进行刷新界面那么就需要使用队列组进行控制, 代码如下:
//创建队列组常量(这是个全局常量)
private let group = DispatchGroup()
下面可以定义一个方法
//创建队列
let queue = DispatchQueue.global()
//利用队列组的enter()和leave()方法进行控制队列的执行顺序
self.group.enter()
//创建异步请求队列
queue.async {[unowned self] in
//这里进行数据的异步请求,在请求成功和失败的方法中进行leave()操作
self.group.leave() //不管成功与否都要leave()操作,方便后面的请求继续进行
}
self.group.enter()
queue.async {[unowned self] in
self.group.leave()
}
//请求完成主线程刷新UI界面
group.notify(queue: DispatchQueue.main) {[unowned self] in
self.tableView.reloadData()
}
网友评论