Отмена пакетного запроса в AFNetworking

Итак, у меня есть пакетный запрос, который представляет собой следующий код:

[[AHClient sharedClient] enqueueBatchOfHTTPRequestOperationsWithRequests:requestArray progressBlock:^(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations) {


    } completionBlock:^(NSArray * operations){

        dispatch_async(dispatch_get_main_queue(), ^(void){
           //update the UI
        });
    }];

Я попытался отменить запрос, сохранив путь URL в массиве и сделать следующее:

for (NSString * urlPath in self.currentRequestArray_){
        [[AHClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:urlPath];
    }

но кажется, что он все еще идет в завершенный блок, то есть: обновляет пользовательский интерфейс. Мысли или предложения?

1 ответ

Решение

В блоке пакетного завершения убедитесь, что операции компонента не отменены, и выполняйте действие только в случае успешного завершения какой-либо из них.

    завершениеБлок:^(операции NSArray *){
      if ([[Операции FilterArrayUsingPredicate:[NSPredicate ultimateateWithFormat:@"isCancelled == NO"]] count] > 0) {
        dispatch_async(dispatch_get_main_queue(), ^(void){
           // обновляем интерфейс
        });
      }
    }
Другие вопросы по тегам