缓存图像 - NSURLRequest和cachePolicy与自定义代码

时间:2011-01-20 00:58:11

标签: iphone cocoa cocoa-touch caching uiimageview

我有几个UITableViews异步加载来自互联网的图像和文本。我想缓存图像以加快性能。

什么是最好的:

* Using NSURLRequest and cachePolicy?
* Saving the image to file system?

对于NSURLRequest和cachePolicy情况,如果我不想使用它们,我将如何清理图像。

1 个答案:

答案 0 :(得分:2)

NSURLRequest应该可以正常使用默认缓存策略,只要每次运行只加载一次图像(即它在内存中缓存)。但是,iPhone不会将数据缓存到磁盘上。

文档在这一点上有点矛盾。例如,NSURLCache initWithMemoryCapacity上的文档:diskCapacity:diskPath表示iOS上的diskPath应该是存储磁盘缓存的子目录的名称。

但NSURLCacheStoragePolicy上的文档说:

  

重要提示:iOS会忽略此缓存   政策,而是将其视为   NSURLCacheStorageAllowedInMemoryOnly。

根据实际测试,后者似乎就是这种情况。因此,无论您设置什么选项,都不会在iOS(当前)上获得缓存到磁盘。因此,如果您希望图像在运行之间保持不变,则需要将其保存到文件系统中。

有些人为此建议https://github.com/rs/SDURLCache,但我自己还没有尝试过。