iOS - 异步缓存和加载图像

时间:2011-02-22 12:37:14

标签: iphone image ios caching

我想要一个适用于iOS的图像加载和缓存库

  • 异步加载图片,
  • 缓存图像,具有可配置的缓存大小和LRU行为,
  • 使用HTTP HEAD
  • 检查图像是否已更新 如果出现错误代码或图像无效,
  • 不会缓存任何内容。

我看过HJCache,但它只满足前两个标准。还有更好的东西吗?

3 个答案:

答案 0 :(得分:29)

我知道这个帖子已经被回答了,但我已经尝试了一个效果很好的库。我之前使用的是ASIHttpRequest,差别很大。

https://github.com/rs/SDWebImage

此外,如果有人需要调整大小或裁剪远程图像,并具有SDWebImage提供的相同功能,我已将SDWebImage库与UIImage + Resize库(Trevor Harmon)集成,并创建了一个示例项目。我修改了SDWebImage的代码来处理转换(裁剪,调整大小)。

该项目在https://github.com/toptierlabs/ImageCacheResize公开。随意使用它!

答案 1 :(得分:25)

编辑:ASI现在已被弃用,但@Tony的答案有一个链接到一个似乎完成大部分工作的图书馆(免责声明 - 我还没有尝试过,而且正按照@Tony的推荐!)


ASIHTTPRequest完成所有这些:)

您需要做的就是添加类似于成功回调的内容

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!

修改

当你完成它之后,你总是可以把它放到github上给我们其他人。 。 。

答案 2 :(得分:1)

我最近看了一下你描述的那种东西 - 无论是通用数据缓存还是以图像为中心的 - 并且没有引起太多兴趣。因此,您可能需要自己动手才能获得所有这些功能。

有各种博客帖子和事情详细说明这些事情,例如 http://davidgolightly.blogspot.com/2009/02/asynchronous-image-caching-with-iphone.html

我认为你考虑过Three20图书馆?我认为它不会满足你的要求。