我已经开始编写一个图像库来从网上下载图像。有一次,我下载了一张我在图像字典中设置的图像(我确保该字典中的图像数量不超过某个阈值,以避免过度使用内存,因此我在需要时删除了图像)。之后,我writeToFile
使用NSData
. 当请求图像时,我首先检查它是否存在于字典中,如果不存在,文件是否存在于使用的路径中[[NSFileManager defaultManager] fileExistsAtPath: uniquePath]
. 如果它不存在,我下载图像。所有这些都发生在设置为高优先级全局队列的异步队列中。但是,整个过程似乎仍然有些滞后。在全局队列中异步使用磁盘读写方法可以吗?另外,在这种情况下是否建议缓存到磁盘?如果我只在我从字典中转储图像时提交文件写入,它可以加快速度吗?在内存不足的情况下?
问问题
933 次
2 回答
0
SDWebImage 框架中的缓存很容易。它默认支持缓存。
于 2013-02-25T11:30:11.613 回答
0
最简单的缓存方法是使用 Apple 自己的 NSURLCache。只需阅读此链接: http: //nshipster.com/nsurlcache/
基本上你需要添加这个给你applicationDidFinishLaunching...
let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
NSURLCache.setSharedURLCache(URLCache)
于 2016-05-07T08:10:09.990 回答