OC(十三):GCD 应用

好久没有更新了,只要是北京的秋天太短了,前半个月还在穿T-shirt, 下半月就是羽绒服,冻得✋冰凉冰凉,可以说冻成了🐶,也懒得码代码,公司的活是没办法了,才伸手干.最近好了,15号供了暖,热气腾腾,1500大洋租的公寓,地暖200大洋,暖气挺舒服的,弄得我早上不想起床,再加上帝都的惯性堵车,迟到是必然的,也只好拿平时的时间调休了.
扯得有点远了,现在说正题,今天讨论的是 GCD 的应用,now begin~

场景如下:
在tableview 加载数据的时候,数据中含有图片资源,在网络不太理想的情况下,会导致加载缓慢,先使用占位图代替,当下载完毕后再reloadData.
解决办法:
使用 GCD 的队列操作完成.
代码如下:

-(void)downLoadImage{
    
    //创建 group
    dispatch_group_t group = dispatch_group_create();
    
    for (NSString * url in imageURLArray) {
        
        //入队
        dispatch_group_enter(group);
        [SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:url] options:nil progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
          
            //下载完成后出队
            dispatch_group_leave(group);
            
        }
    }
    //回到主队列 dispatch_get_main_queue()
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        
        printf(@"下载完成,reloaddata");
        
    });
    
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 说明:本文主要用于个人能力的提高,主要参考于简书,Swift版本为3.0 1. 简介 什么是GCD呢?我们先看看百...
    CocoaC_Wang阅读 1,431评论 0 4
  • 1. GCD简介 什么是GCD呢?我们先来看看百度百科的解释简单了解下概念 引自百度百科:Grand Centra...
    千寻_544f阅读 420评论 0 0
  • 本文首发于我的个人博客:「程序员充电站」[https://itcharge.cn]文章链接:「传送门」[https...
    ITCharge阅读 349,364评论 308 1,927
  • 天上乌云密布, 月儿若隐若现, 远方的天空闪过一道道闪电, 是沉默还是爆发, 远山像一头怪兽, 蛰伏在广袤的大地,...
    心若安一切安好阅读 192评论 0 1
  • 昨天,在《得到》APP听了一场古典老师的演讲。如何打造你的职场核心竞争力。 下面是我对于古典老师演讲的理解和扩展,...
    think12阅读 928评论 0 3