ios objective-c caching uiimageview afnetworking-2

ios - ¿Cómo puedo obtener una imagen en caché almacenada por la categoría UIImageView de AFNetworking?



objective-c caching (1)

Estoy usando la siguiente categoría UIImageView+AFNetworking.h de AFNetworking en mi aplicación, está funcionando bien, sus fotos de almacenamiento en caché y carga las imágenes sin problemas.

En un punto, quiero obtener una imagen que ya está allí en mi caché.

Así que busco en la clase de categoría superior donde encontré el siguiente código, que creo - puede ser útil.

Aquí está el fragmento de esto:

@implementation AFImageCache - (UIImage *)cachedImageForRequest:(NSURLRequest *)request { switch ([request cachePolicy]) { case NSURLRequestReloadIgnoringCacheData: case NSURLRequestReloadIgnoringLocalAndRemoteCacheData: return nil; default: break; } return [self objectForKey:AFImageCacheKeyFromURLRequest(request)]; } - (void)cacheImage:(UIImage *)image forRequest:(NSURLRequest *)request { if (image && request) { [self setObject:image forKey:AFImageCacheKeyFromURLRequest(request)]; } } @end

Si quieres que agregue una versión web de esto, ya está aquí .

Creo que, - (UIImage *)cachedImageForRequest:(NSURLRequest *)request es el método que puede devolverme mi imagen en caché.

Pero no estoy seguro, ¿cómo puedo usarlo?

Si conozco Objective-C un poco, ¿es un poco un "protocolo"?

Lo que he intentado hasta ahora es usarlo como un protocolo en uno de mis controladores de vista. Me gusta esto:

#import <UIKit/UIKit.h> @interface MyViewController : UIViewController<AFImageCache> @end

Pero luego me está dando las siguientes advertencias:

No estoy seguro de cómo resolver esas advertencias y obtener la imagen de la memoria caché? ¿O de alguna otra manera más apropiada?


Supongo que importa el encabezado UIImageView + AFNetworking.h.

Si desea acceder a la imagen en caché. Debería tener un objeto NSURLRequest. Entonces es así:

UIImage *image = [[UIImageView sharedImageCache] cachedImageForRequest:request];

¡Hecho!