美文网首页
iOS: Swift 中 DispatchGroup 分组管理异

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