Ios AFNetworking 2.0完整下载多个图像

Ios AFNetworking 2.0完整下载多个图像,ios,objective-c,afnetworking,afnetworking-2,Ios,Objective C,Afnetworking,Afnetworking 2,我正试图找到一种使用AFNewWorking 2.0下载多幅图像的方法。我在这里读了很多帖子,但是找不到我想要的答案,希望你们能帮我 问题是,我想知道所有的下载何时完成,所有的图片是否都下载到了哪里。 所以我有一个带有图像URL的数组,它的ant试图做这样的事情 for(NSString *photoUrlString in self.photos){ NSURL *url = [NSURL URLWithString:photoUrlString]; AFHT

我正试图找到一种使用AFNewWorking 2.0下载多幅图像的方法。我在这里读了很多帖子,但是找不到我想要的答案,希望你们能帮我

问题是,我想知道所有的下载何时完成,所有的图片是否都下载到了哪里。 所以我有一个带有图像URL的数组,它的ant试图做这样的事情

for(NSString *photoUrlString in self.photos){

        NSURL *url = [NSURL URLWithString:photoUrlString];
        AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:[NSURLRequest requestWithURL:url]];
        requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
        [requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Image error: %@", error);
        }];
        [requestOperation start];
    }
通过将这些请求放入队列并将max concurrent operations设置为1,我找到了一些答案。但我不知道这到底是怎么回事

感谢您的帮助,提前谢谢

试试这个:

// _group, _queue are iVar variable
dispatch_group_t *_group = dispatch_group_create();
dispatch_queue_t *_queue = dispatch_queue_create("com.company.myqueue2", NULL);

// all files download
for(int i = 0 ; i < numberOfFileDownloads; i++){
   dispatch_group_async(_group, _queue, ^{
      // here is background thread;
      // download file
   });
}


// all files are download successfully, this method is called
dispatch_group_notify(_group, _queue, ^{
}
/\u组、\u队列是iVar变量
dispatch_group_t*_group=dispatch_group_create();
dispatch\u queue\u t*\u queue=dispatch\u queue\u create(“com.company.myqueue2”,NULL);
//所有文件下载
for(int i=0;i
签出
+[AFURLConnectionOperationBatchOfRequesToOperations:progressBlock:completionBlock:

虽然没有文档记录,但它是不言自明的。它还允许您监控进度


在使用此方法之前,您需要有一组HTTP操作(如果您决定坚持使用基于NSURLConnection的AFNetworking实现,则需要这样做).

您可以发布您使用afnetworking 2.0实现的示例以下载多个图像吗?谢谢!@Yogesh.Lolusare.Apple检查我的答案,我注意到它更快。如果有人有更好的解决方案,请发布。谢谢。我会提供我实现的。您需要AFHTTPRequestOperationMa吗用于批处理映像加载(例如在tableview中)的管理器?
for(Photo *photo in array){

    //form the path where you want to save your downloaded image to
    NSString *constPath = [photo imageFullPath];

    //url of your photo
    NSURL *url = [NSURL URLWithString:photo.serverPath];

    AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:[NSURLRequest requestWithURL:url]];
    op.responseSerializer = [AFImageResponseSerializer serializer];

    op.outputStream = [NSOutputStream outputStreamToFileAtPath:constPath append:NO];
    op.queuePriority = NSOperationQueuePriorityLow;
    [op setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead){

    }];

    op.completionBlock = ^{

        //do whatever you want with the downloaded photo, it is stored in the path you create in constPath
    };
    [requestArray addObject:op];
}

NSArray *batches = [AFURLConnectionOperation batchOfRequestOperations:requestArray progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) {
} completionBlock:^(NSArray *operations) {

    //after all operations are completed this block is called
    if (successBlock)
        successBlock();
}];

[[NSOperationQueue mainQueue] addOperations:batches waitUntilFinished:NO];