美文网首页
OC(十三):GCD 应用

OC(十三):GCD 应用

作者: IMSong | 来源:发表于2016-11-18 01:52 被阅读18次

好久没有更新了,只要是北京的秋天太短了,前半个月还在穿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");
        
    });
    
}

相关文章

网友评论

      本文标题:OC(十三):GCD 应用

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