美文网首页
Swift3.0 / swift2.3中dispatch_gro

Swift3.0 / swift2.3中dispatch_gro

作者: Simple_Code | 来源:发表于2017-07-25 09:54 被阅读12次

    在项目开发中有时候需要把一些循环执行的异步操作加入到group中,让彻底循环完之后再进行下一步操作,直接上代码

    创建一个组

    swift2.3:
    let group = dispatch_group_create()
    
    swift3.0:
    let group = DispatchGroup()
    

    循环加载数据

    swift2.3:
    for _ in array.count {
    
        //将当前的下载操作添加到组中
        dispatch_group_enter(group)
    
        //在这里异步加载任务
    
        //离开当前组
        dispatch_group_leave(group)
    }
    
    swift3.0:
    for _ in array {
    
        //将当前的下载操作添加到组中
        group.enter()
    
        //在这里异步加载任务
    

    全部加载完后通过闭包通知调用者

    swift2.3:
    dispatch_group_notify(group, dispatch_get_main_queue()) { () -> Void in
    
        //在这里告诉调用者,下完完毕,执行下一步操作
    }
    
    swift3.0:
    group.notify(queue: DispatchQueue.main) { 
        //在这里告诉调用者,下完完毕,执行下一步操作
    }
    
        //离开当前组
        group.leave()
    }
    

    相关文章

      网友评论

          本文标题:Swift3.0 / swift2.3中dispatch_gro

          本文链接:https://www.haomeiwen.com/subject/uxqwkxtx.html