2012-03-21 23 views
6

¿Hay un envoltorio o algún tipo de funcionalidad incorporada disponible en RestKit para cargar UIImage de NSURL de forma asíncrona utilizando devoluciones de llamada o bloques? No pude encontrar dicho método en los documentos RestKit. Si no existe, ¿cuál es una buena estrategia para implementar imágenes asíncronas con carga diferida desde NSURLusandoRestKit tanto como sea posible?Cargar imágenes desde NSURL asincrónico con RestKit

+0

utilizo restkik para cargar imágenes, para ello utilizo base 64 ... única manera que encontré. – Beber

Respuesta

5
Usando

RestKit puede utilizar RKRequest para cargar los datos de la imagen de tal manera que:

RKRequest* request = [RKRequest requestWithURL: url]; 

request.onDidLoadResponse = ^(RKResponse* response) { 
    UIImage* image = [UIImage imageWithData: response.body]; 
    // do something interesting with the image 
}; 

request.onDidFailLoadWithError = ^(NSError* error) { 
    // handle failure to load image 
} 

[imageLoadingQueue addRequest: request]; 

Tenga en cuenta que incluso en el caso onDidLoadResponse es posible que desee comprobar response para asegurarse de que el tipo o f datos es lo que esperabas. La cola de la carga de imágenes utilizado anteriormente se puede crear de este modo:

imageLoadingQueue = [RKRequestQueue requestQueueWithName: @"imageLoadingQueue"]; 
[imageLoadingQueue start]; 
+0

Awesome restkit based answer. gracias –

+0

El compilador no puede encontrar una definición de RKRequest cuando uso #import , ¿RKRequest aún está disponible en RestKit? – BergP

19

No estoy seguro sobre una solución RestKit, pero SDWebImage es una biblioteca que te permitirá cargar fácilmente imágenes de forma asíncrona mediante la adición de una categoría a UIImageView, por lo que todo lo que tiene que escribir es la siguiente (por ejemplo):

[myImageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] 
       placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
+3

Bueno, eso es bastante increíble ... Lo conseguí y funcioné en <5 minutos sin pensarlo. Me abstendré de aceptar hasta que vea si hay alguna solución basada en RestKit. –

+0

SDWebImage también almacena en caché de imágenes. AFAIK, RestKit no lo hace. –

+0

Creo que esto debería marcarse como la respuesta correcta, no vi ninguna implementación de RK que se acerque a las características de SDWebImage. – eladleb

Cuestiones relacionadas