Очередь AFNetwork 2.0 с блоком завершения?
Как создать очередь в AFNetwork 2.0 и установить обработчик завершения для завершения добавленных аберраций?
в настоящее время у меня есть это
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. Все решения, которые я нашел до сих пор, похоже, используют AFHTTPClient, которого нет в AFNetwork 2.0.
Я новичок в AFNetwork, поэтому некоторые примеры будут с благодарностью.
Спасибо!
1 ответ
Решение
Тебе нужно
+ (NSArray *)batchOfRequestOperations:(NSArray *)operations
progressBlock:(void (^)(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations))progressBlock
completionBlock:(void (^)(NSArray *operations))completionBlock
метод 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];