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