¿AFHTTPRequestOperationManager ejecuta requestes en el operationQueue?

Si tengo un administrador creado e instigado y lo hago:

AFHTTPRequestOperation *operation = [self.manager HTTPRequestOperationWithRequest:request success:mySuccessBlock failure:myFailureBlock]; [operation start]; 

¿Esto se ejecutará en operationQueue del administrador? Parece que no puedo encontrar nada que garantice que se verán usando uno de los methods GET, POST, PUT en lugar de eso, supongo que agregará la operación a la queue.

Veo la respuesta de Mattt aquí, pero quiero estar seguro de una manera u otra.

¿Cómo enviar una request con AFNetworking 2 en estricto order secuencial?

Lo que bash hacer es poner en queue las requestes y hacer que se ejecuten sincrónicamente configurando

 [self.manager.operationQueue setMaxConcurrentOperationCount:1]; 

Si desea ejecutar una operación en una queue, debe agregar explícitamente la operación a la queue:

 AFHTTPRequestOperation *operation = [self.manager HTTPRequestOperationWithRequest:request success:mySuccessBlock failure:myFailureBlock]; [queue addOperation:operation]; 

Esto supone que crearías una queue:

 NSOperationQueue *queue = [[NSOperationQueue alloc] init]; queue.name = @"com.domain.app.networkQueue"; queue.maxConcurrentOperationCount = 1; 

Si acaba de iniciar las operaciones sin agregarlas a una queue (por ejemplo, [operation start] ), simplemente se ejecutarán, sin respetar ningún parámetro de queue particular.

Tenga en count que también podría haber agregado su operación a la queue del administrador de operaciones (que puede establecer maxConcurrentOperationCount , como se aludió en su pregunta):

 [self.manager.operationQueue addOperation:operation]; 

Eso te ahorra tener que crear tu propia queue. Pero luego supone que todas sus otras requestes de AFNetworking para este manager también se ejecutarán en serie, también. Personalmente, dejaba manager.operationQueue solo y creaba una queue dedicada para mi lógica que requería operaciones en serie.

Una nota final: el uso de operaciones de networking serie impone una penalización significativa de performance sobre las requestes simultáneas. Supondré por tu pregunta que necesitas hacerlo en serie, pero en general, ahora layout mis aplicaciones para usar las requestes simultáneas siempre que sea posible, ya que es un UX mucho mejor. Si necesito una operación particular para ser serial (por ejemplo, el inicio de session), entonces lo hago con dependencies de operación o bloques de finalización, pero el rest de la aplicación ejecuta requestes de networking simultáneas siempre que sea posible.