iOS 批量下载多张图片,保持原始顺序

经常会遇到这样的应用场景,例如在调用iOS系统分享功能前(UIActivityViewController),需要将所有的图片事先准备好,但是图片都在网络上.
这时,就需要先将图片都下载好后再进行调用.
可能是这个功能的实现太简单了,所以像SDWebImage,AFNetwork等都没有提供可以直接调用的API方法.
所以只好花了2秒钟自己写了一个方法;

#import "ImagesDownloadManager.h"
#import "SDWebImageDownloader.h"

@implementation ImagesDownloadManager

/**
 批量下载图片
 保持顺序;
 全部下载完成后才进行回调;
 回调结果中,下载正确和失败的状态保持与原先一致的顺序;
 
 @return resultArray 中包含两类对象:UIImage , NSError
 */
+ (void)downloadImages:(NSArray *)imgsArray completion:(void(^)(NSArray *resultArray))completionBlock {
    SDWebImageDownloader *manager = [SDWebImageDownloader sharedDownloader];
    manager.downloadTimeout = 20;
    __block NSMutableDictionary *resultDict = [NSMutableDictionary new];
    for(int i=0;i

调用方法:

                //下载图片
                [ImagesDownloadManager downloadImages:imgs completion:^(NSArray *resultArray) {
                    NSMutableArray *items = [NSMutableArray new];
                    for(int i=0;i

你可能感兴趣的:(iOS 批量下载多张图片,保持原始顺序)