羣組下載技術

所謂羣組下載技術就是將網絡請求都放在任務池中,等全部的下載任務完畢後再回調下載結果來展現,從而保證要下載的東西可以在同一時間都能展現出來,不受下載任務的前後而致使的效果展現不一樣步的問題。其實現代碼以下:下面的代碼的使用場景是:得到網絡上的全部單張圖片,保證單張圖片都同時展現網絡

 

 //建立羣組對象  buffer  池子  將全部須要監聽的異步任務放入到任務池中異步

        dispatch_group_t group =  dispatch_group_create();url

        for (Status *status in self.statuses) {spa

            if (status.pic_urls.count != 1) {對象

                //不是單張圖片圖片

                //跳出本次循環get

                continue;同步

            }else{it

                

                //下載單張圖片 等待全部的單張圖片下載完畢以後再進行回調io

                //如何監聽全部的異步任務完成  羣組異步

                //在下載以前  將異步任務  添加到任務池

        dispatch_group_enter(group);   

       [[ SDWebImageManager sharedManager] downloadImageWithURL:status.pic_urls.lastObject options:0 progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {

           dispatch_group_leave(group);

       }];       

            }

            dispatch_group_notify(group, dispatch_get_main_queue(), ^{

                //完成回調

            });

        }

 

 

因爲下載使用的是SDWebImageManager,因此提早得到單張圖片使用下面方法:(

NSString *key = self.pic_strs.lastObject;

        UIImage *image = [[[SDWebImageManager sharedManager] imageCache] imageFromDiskCacheForKey:key];

        if (image != nil) {

            imageSize = image.size;

        }

相關文章
相關標籤/搜索