iOS: Swift 中 DispatchGroup 分组管理异
作者:
Liu____ | 来源:发表于
2021-01-19 11:20 被阅读0次unc sumTheassets(compHandler:@escaping (_ sum:Float)->()) {
var asset:Float = 0
let group = DispatchGroup() //创建group
for object in objects { //for循环便利本地存储的数组数据
group.enter() // 将以下任务添加进group
let cellViewmodel = MyassetsCellViewModel() // 创建VM对象,并调用网络请求函数
cellViewmodel.getThepriceFromnew(symbol: object.symbol, compHandler: { (price, ratio) in
let decimals = Float(object.decimals) // 获取数量,转为Float型
let num = price * decimals! //计算总价格 单价 * 数量
asset += num //将计算结果累加
group.leave() //本次任务完成(即本次for循环任务完成),将任务从group中移除
})
}
group.notify(queue: .main) { // group中的所有任务完成后再主线程中调用回调函数,将结果传出去
compHandler(asset) //在回调里将累加结果传出去
}
}
https://blog.csdn.net/u010960265/article/details/89377128
本文标题:iOS: Swift 中 DispatchGroup 分组管理异
本文链接:https://www.haomeiwen.com/subject/mjeqzktx.html
网友评论