如何在使用2个缓存库时管理ios中的图像缓存

时间:2014-09-25 11:28:48

标签: uiimage xcode6 sdwebimage qlpreviewcontroller image-caching

我使用SDWebImage图像作为默认图像加载器加载,我还使用AZAPreviewController在全屏视图中显示图像。

AZAPreviewController使用自己的缓存文件夹来维护相同图像的缓存,但在尝试获取AZAPreviewItem时,iOS-8中不显示图像。

任何人都可以帮助我,或者任何人都可以建议任何更好的预览控制器(全屏图像查看器)与iOS8支持。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

AZAPreview控制器 SDWebImage 都有不同的工作机制。

AZAPreviewController 使用ios的QLPreviewcontroller作为超类,将图像保存为文档目录中带扩展名的文件。如果存在,直接从目录中获取图像,其他方式从url下载并保存到文档目录中。

SDWebImage 将图像存储为NSDATA并将数据存储到目录文件夹中。加载任何图像获取数据并将其转换为UIImage。

所以一般情况下,如果我们同时使用库单个图像将被存储两次,这会消耗内存而且效率不高。

我找到了一个预览控制器 [MWPhotos] [1] 使用SDWebImage作为其子库来加载图像,这些图像在存储数据时不会产生任何冲突,并且更好地保留较少的缓存内存。 / p>

因此,当我们需要使用SDWebImage的预览控制器作为缓存库时,最后使用MWPhotoBrowser。

MWPhotoBrower参考项目:[1]:https://github.com/mwaterfall/MWPhotoBrowser

感谢。