2012-05-11 9 views
6

Las solicitudes HTTP realizadas con NSURLConnection son controladas por eventos. Esto hace las cosas un poco raras cuando necesita emitir, por ejemplo, tres solicitudes una tras otra, donde cada solicitud utiliza información devuelta por la anterior.La mejor manera de enviar una serie de solicitudes HTTP con NSURLConnection

estoy acostumbrado a hacerlo de esta manera:

response1 = request1(); 
response2 = request2(response1); 
response3 = request3(response2); 

Pero la única manera de que pudiera encontrar la manera de hacer esto con NSURLConnection es tener connectionDidFinishLoading: hacer la siguiente solicitud. Pero cuando crece la cantidad de solicitudes secuenciales, esto puede volverse complicado.

¿Cuál es la manera idiomática de manejar solicitudes HTTP secuenciales con cacao?

Respuesta

7

Puede envolver las solicitudes en una NSOperation y luego definir las dependencias de operación, de modo que cada solicitud debe esperar en sus solicitudes dependientes antes de la ejecución.

Desde el Apple Docs:

dependencias son una forma conveniente para ejecutar operaciones en un orden específico. Puede agregar y eliminar dependencias para una operación usando los métodos addDependency: and removeDependency:. De forma predeterminada, un objeto de operación que tiene dependencias no se considera listo hasta que todos sus objetos de operación dependientes hayan terminado de ejecutarse. Sin embargo, una vez que finaliza la última operación dependiente, el objeto de operación queda listo y puede ejecutarse.

0

Le aconsejaría que utilice una biblioteca de terceros llamada MKNetworkKit. Puede manejar el trabajo duro por usted, para que pueda enfocarse en los aspectos clave de su aplicación. Puede encontrarlo here.

Cuestiones relacionadas