Solicitações de url assíncrono dentro de dispatch_async

Estou tentando implementar solicitações de URL assíncronas em uma função específica, quero que todas essas solicitações sejam concluídas e, em seguida, executar uma determinada ação, mas a ação precede as solicitações, ou seja, está sendo chamada antes da conclusão das solicitações.

dispatch_queue_t fetchQ = dispatch_queue_create("Featured Doc Downloader", NULL);
        dispatch_async(fetchQ, ^{
            [self myAsyncMultipleURLRequestFunction];
            dispatch_sync(dispatch_get_main_queue(), ^{
                [self updateUIFunction];
            });
        });

-(void)myAsyncMultipleURLRequestFunction
   {
    for (int i=0; i<count; i++) 
     {
     NSURLConnection *loginConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];          
     }
   }

agora updateUIFunction é chamado antes de myAsyncMultipleURLRequestFunction concluir todas as solicitações. Também tentei isso com NSOperaitonQueue, mas não podia fazer o que eu realmente quero.

[_operationQ addOperationWithBlock: ^ {
     for (int i=0; i<count; i++)
      {
     NSURLConnection *loginConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];          
      }
    }

[[NSOperationQueue mainQueue] addOperationWithBlock: ^ {
         // updating UI
         [self updateUIFunction];
    }];
}];

Eu sei que isso é simples, mas estou correndo fora do tempo, qualquer ajuda é apreciada.

questionAnswers(3)

yourAnswerToTheQuestion