Descarga de files en queue utilizando AFNetworking en iPhone

Necesito download varios files en la queue. En este momento, mi código funciona y todos los files se descargan simultáneamente. Sin embargo, necesito download un file a la vez y todos los demás files están en queue, a continuación se muestra el código, por favor, hágamelo saber qué estoy haciendo mal. Solo necesito download un file a la vez y todos los demás files deben estar en queue.

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:videoURL]; [httpClient.operationQueue setMaxConcurrentOperationCount:1]; for (NSURL *videoString in videoArray) { NSURLRequest *request = [NSURLRequest requestWithURL:videoString]; AFDownloadRequestOperation *operation = [[AFDownloadRequestOperation alloc] initWithRequest:request targetPath:path shouldResume:YES]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { if(operation.response.statusCode == 200) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Successfully Downloaded" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } }failure:^(AFHTTPRequestOperation *operation, NSError *error) { if(operation.response.statusCode!= 200) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Error While Downloaded" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } }]; [httpClient enqueueHTTPRequestOperation:operation]; [operation setProgressiveDownloadProgressBlock:^(NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) { float percentDone = ((float)totalBytesRead) / totalBytesExpectedToReadForFile; } }]; 

Para limitar la queue a una operación a la vez,

Podría intentar agregar dependencies entre cada operación antes de ponerlas en queue.

Me gusta esto

[Operation2 addDependency:Operation1];

¡Espero que ayude!

utilice queues de despacho (GCD) después del bloque setCompletionBlockWithSuccess:

como siguiendo el path:

  dispatch_async(dispatch_get_main_queue(), ^{ // Call any method from on the instance that created the operation here. [self doSomework]; // example });