iOS: almacenamiento en caching y carga de imágenes de forma asíncrona

Quiero una biblioteca de caching y carga de imágenes para iOS que

  • carga imágenes asincrónicamente,
  • Caché imágenes, con un tamaño de caching configurable y comportamiento LRU,
  • comtesting si las imágenes se han actualizado, utilizando HTTP HEAD,
  • no almacena en caching nada en el caso de un código de error o una image no válida.

He mirado HJCache , pero solo satisface los dos primeros de estos criterios. ¿Hay algo mejor?

Sé que este hilo ha sido respondido, pero he intentado una biblioteca que ha funcionado muy bien. Estaba usando ASIHttpRequest antes y la diferencia es grande.

https://github.com/rs/SDWebImage

Además, si alguien necesita cambiar el tamaño o recortar las imágenes remotas, y tener las mismas características que proporciona SDWebImage, he integrado la biblioteca SDWebImage con la biblioteca UIImage + Resize (de Trevor Harmon) y he creado un proyecto de ejemplo. Modifiqué el código de SDWebImage para hacer frente a las transformaciones (recortar, cambiar el tamaño).

El proyecto es público en https://github.com/toptierlabs/ImageCacheResize . ¡Sientase libre de usarlo!

EDITAR: ASI ha quedado en desuso ahora, pero la respuesta de @ Tony tiene un enlace a una biblioteca que parece hacer la mayor parte de esto (descargo de responsabilidad: ¡aún no lo he probado y voy a seguir la recomendación de Tony!)


ASIHTTPRequest hace todo eso 🙂

Todo lo que tendría que hacer es agregar algo como la callback de éxito

UIImage *image = [UIImage imageWithData:[request responseData]]; // If the image is nil ASIHTTPRequest will let you remove the data from the cache // but I can't remember off the top of my head how. Checkout the docs! 

EDITAR

Y cuando lo hayas terminado, siempre podrías ponerlo en github para el rest de nosotros. . .

Recientemente he visto el tipo de cosas que describes, ya sea un caching de datos generales o uno centrado en imágenes, y no encontró mucho interés. Por lo tanto, es posible que tengas que armar el tuyo para get todas esas funciones.

Hay varias publicaciones en blogs y cosas que detallan tales cosas, como http://davidgolightly.blogspot.com/2009/02/asynchronous-image-caching-with-iphone.html .

Supongo que has considerado la biblioteca Three20. Sin embargo, no creo que cubra tus necesidades.