AFURLConnectionOperation

AFURLConnectionOperation

本文介绍了AFNetwork 2.0队列与完成块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在AFNetwork 2.0上创建队列并为添加的操作完成时设置完成处理程序?

How do I create a queue on AFNetwork 2.0 and set a completion handler for when the added oppertations are finished?

目前我有这个

ASINetworkQueue *queue = [[ASINetworkQueue alloc] init];

[queue setDelegate:self];
[queue setQueueDidFinishSelector:@selector(refeshInterface)];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[queue addOperation:request];

ASIFormDataRequest *request2 = [ASIFormDataRequest requestWithURL:url2];
[queue addOperation:request2];

[queue go]

但我需要将其转换为AFNetwork。到目前为止我找到的所有解决方案似乎都使​​用了AFNetwork 2.0中不存在的AFHTTPClient。

But I need to convert it to AFNetwork. All the solutions I have found so far seem to use AFHTTPClient which doesn't exist in AFNetwork 2.0.

我是AFNetwork的新手,所以我们非常感谢一些例子。

I am new to AFNetwork, so some examples would be greatly appreciated.

谢谢!

推荐答案

您需要

+ (NSArray *)batchOfRequestOperations:(NSArray *)operations
                        progressBlock:(void (^)(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations))progressBlock
                      completionBlock:(void (^)(NSArray *operations))completionBlock

AFURLConnectionOperation的方法。

method of AFURLConnectionOperation.

请查看以下示例

NSMutableArray *operations = [NSMutableArray array];

for (DGSocialImage *socialImage in socialImages) {
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:socialImage.url];
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    operation.responseSerializer = [AFImageResponseSerializer new];
    [operations addObject:operation];
}
NSArray *batchOperations = [AFURLConnectionOperation batchOfRequestOperations:operations
                                                                progressBlock:NULL
                                                              completionBlock:^(NSArray *operations) {
    NSError *error;
    for (AFHTTPRequestOperation *op in operations) {
        if (op.isCancelled){
            return ;
        }
        if (op.responseObject){
            // process your responce here
        }
        if (op.error){
            error = op.error;
        }
    }
}];
[[NSOperationQueue mainQueue] addOperations:batchOperations waitUntilFinished:NO];

这篇关于AFNetwork 2.0队列与完成块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 00:18