美文网首页
swift使用dispatch_group_create()

swift使用dispatch_group_create()

作者: 会飞的水珠 | 来源:发表于2016-11-09 17:03 被阅读0次

    如果想在dispatch_queue中所有的任务执行完成后在做某种操作,在串行队列中,可以把该操作放到最后一个任务执行完成后继续,但是在并行队列中怎么做呢。这就有dispatch_group 成组操作。比如

            缓存图片是异步的,我要让图片都下载完,再让程序继续往下走!

    //缓存图片

    private func cacheImages(viewModels : [StatusViewModel]) {

    // 0.创建group

                  letgroup =dispatch_group_create()

    // 1.缓存图片

    forviewmodelinviewModels {

                forpicURLinviewmodel.picURLs{

                     dispatch_group_enter(group)

                     SDWebImageManager.sharedManager().downloadImageWithURL(picURL, options: [],                                  progress:nil, completed: { (_,_,_,_,_) ->Void in

                              dispatch_group_leave(group)

                     })

                 }

    }

    // 2.刷新表格

    dispatch_group_notify(group,dispatch_get_main_queue()) { () ->Void in

    //刷新表格

    self.tableView.reloadData()

    //停止刷新

    self.tableView.mj_header.endRefreshing()

    self.tableView.mj_footer.endRefreshing()

    //显示提示的Label

    self.showTipLabel(viewModels.count)

    }

    }

    相关文章

      网友评论

          本文标题:swift使用dispatch_group_create()

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