Pregunta

He estado utilizando el soporte de bloque ampliamente en asihttprequest, y he encontrado que es una forma extremadamente elegante de codificar las solicitudes de asíncrono, mucho más que hacer que el delegado llame a una función separada

Aquí está el código de ejemplo para referencia rápida.

   __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setCompletionBlock:^{
      NSString *responseString = [request responseString];
   }];
   [request startAsynchronous];

Me gustaría comenzar a usar Restkit, pero necesito poder usar Restkit con bloques también.

He visto el envoltorio aquí Envoltura de bloques de descanso, pero me gustaría verificar si ese envoltorio funcionaría bien en la producción, y si alguien lo ha usado ampliamente antes

¿Fue útil?

Solución

Todavía no he usado la envoltura de bloques Restkit, pero lo estaré en breve. De hecho, estoy eliminando AsihttpRequest de mi aplicación y reemplazando con Restkit. No porque sea malo, asihttp* es bastante estable, pero no está evolucionando. Mientras que muchas otras bibliotecas, como Restkit, envuelve nsurlconnection y, por lo tanto, obtienen los beneficios de las manzanas que continúan las mejoras, Asihttp* usa CFNETWork. Apple no está invirtiendo mucho esfuerzo en mejorar las clases de Foundation Core Preexisting (como CFNETWork). Además, dado que asihttp* depende de CF, será un dolor real para migrar al arco cuando está disponible; No soy los beneficios del arco lo antes posible.

Otros consejos

El soporte de bloques para todas las tareas de delegado básico en RKRequest y RKObjectLoader vendrá en 0.9.4

Ayer, Blake lanzó Verson 0.9.3 que presenta el uso de bloques para el mapeador de objeto (otros métodos ya estaban listos para bloques). Debes ver las nuevas características.

Para una muestra de código rápido para usar Restkit con bloques, derivé este fragmento de http://kalapun.com/blog/2012/05/17/how-i-restkit/

[[RKClient sharedClient] get:@"/fooBar" usingBlock:^(RKRequest *request) {

    request.onDidLoadResponse = ^(RKResponse *response) {

        NSLog(@"Retrieved XML: %@", [response bodyAsString]); 
    };
}];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top