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

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

    1. -(void)downLoadImage{
    2. //创建 group
    3. dispatch_group_t group = dispatch_group_create();
    4. for (NSString * url in imageURLArray) {
    5. //入队
    6. dispatch_group_enter(group);
    7. [SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:url] options:nil progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
    8. //下载完成后出队
    9. dispatch_group_leave(group);
    10. }
    11. }
    12. //回到主队列 dispatch_get_main_queue()
    13. dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    14. printf(@"下载完成,reloaddata");
    15. });
    16. }