将下载的图像缓存到磁盘

时间:2013-02-25 11:13:23

标签: ios disk

我已经开始编写图像库以从网上下载图像。有一次,我下载了一个图像,我将其设置在图像字典中(我确保此字典中的图像数量不超过某个阈值数量,以避免过度使用内存,因此我会在需要时删除图像)。之后,我使用writeToFile NSData方法将该图像写入文件。 当请求图像时,我首先检查它是否存在于字典中,如果不存在,如果文件存在于使用[[NSFileManager defaultManager] fileExistsAtPath: uniquePath]的路径中。如果它不在那里,我下载图像。所有这些都发生在异步队列中,该队列设置为高优先级全局队列。但是,整个过程似乎仍然有点滞后。是否可以在全局队列中异步使用磁盘读取和写入方法?此外,在这样的情况下,是否建议缓存到磁盘?如果我在低内存条件下从字典中转储图像时提交文件写入,它能加快速度吗?

2 个答案:

答案 0 :(得分:0)

SDWebImage Framework中可以轻松实现缓存。默认情况下,它支持缓存。

答案 1 :(得分:0)

最简单的方法是缓存内容是使用Apple自己的NSURLCache。请阅读此链接:http://nshipster.com/nsurlcache/

基本上您需要将此添加到applicationDidFinishLaunching...

let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
NSURLCache.setSharedURLCache(URLCache)