swift使用dispatch_group_create()

如果想在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)

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲...
    花花世界的孤独行者阅读 3,486评论 0 1
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 7,126评论 0 35
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,706评论 0 4
  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    zweic阅读 7,629评论 0 73
  • 一、禅拍主要功能 1、疏通经络,排解情绪, 2、提气安神,激活身体自愈力 3、防未病,调已病 二、禅拍收费标准 单...
    龚灵阅读 14,958评论 0 0

友情链接更多精彩内容