哪个图像caching库为iOS?

我正在构build一个相册应用程序,并find一些图像caching库,即:

  • JMImageCache
  • HJCache
  • SDWebImage

你会推荐什么(或其他库不在名单上)? 我在寻找:

  • 效率
  • 垃圾收集方面的最小努力
  • 支持块首选

谢谢

就个人而言,我认为SDWebImage是最好的,因为它是一个绝对的努力解决scheme,并提供了最简单的caching处理机制,因为它只是UIImageView类的扩展。

图像asynchronous下载和caching不是一个简单的任务。 它需要做得好,否则就会打败它的目的。 所以我强烈build议你最终build立自己的。 话虽如此,我需要一个快速而简单的解决scheme,以推进我的应用程序的发展。

我发现这些解决scheme:

  • HJCache
  • SDWebImage
  • 苹果的LazyTableImages
  • 从苹果的LazyTableImages, MHLazyTableImages适应

我试过HJCache,但是在处理大图片(1.5M +)时,它并没有提供很好的滚动性能。 对于小图像,虽然它工作得很好。 尝试了两个LazyTableImages,但整合并不简单。

最终,我select了SDWebImage。 整合不能简单一些。 一旦你将库链接到你的项目,你需要做的是:

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

在你的tableView:cellForRowAtIndexPath:

另外:

  • 与自定义单元格一起工作
  • 不阻止用户界面
  • 提供很好的滚动性能
  • 图像下载和caching是无缝的。

试试APSmartStorage 。 它会自动将UIImage / NSDatacaching在磁盘或内存中。

它有可爱的块式API;

  // setup data parsing block APSmartStorage.sharedInstance.parsingBlock = ^(NSData *data, NSURL *url) { return [UIImage imageWithData:data scale:UIScreen.mainScreen.scale]; }; ... // show some progress/activity ... // load object with URL [APSmartStorage.sharedInstance loadObjectWithURL:imageURL callback:(id object, NSError *error) { // hide progress/activity if (error) { // show error } else { // do something with object } }]; 

这很聪明,而且还很简单:

在这里输入图像说明

有多个框架可以解决这个问题。 仅举几个:

迅速:

  • Nuke (我的)
  • 翠鸟
  • AlamofireImage
  • HanekeSwift

Objective-C的:

  • AFNetworking
  • PINRemoteImage
  • YYWebImage
  • SDWebImage

我试过使用SDWebImage。

同意这很容易整合。

然而,这个库的大问题是,它不尊重“最大年龄”caching控制。

图书馆仍在开发中,但他们没有select这个限制。

我强烈build议你尝试翠鸟和SDWebImage 。 这两个完美的作品,从网上下载和caching图像。