我有几个UITableViews异步加载来自互联网的图像和文本。我想缓存图像以加快性能。
什么是最好的:
* Using NSURLRequest and cachePolicy?
* Saving the image to file system?
对于NSURLRequest和cachePolicy情况,如果我不想使用它们,我将如何清理图像。
答案 0 :(得分:2)
NSURLRequest应该可以正常使用默认缓存策略,只要每次运行只加载一次图像(即它在内存中缓存)。但是,iPhone不会将数据缓存到磁盘上。
文档在这一点上有点矛盾。例如,NSURLCache initWithMemoryCapacity上的文档:diskCapacity:diskPath表示iOS上的diskPath应该是存储磁盘缓存的子目录的名称。
但NSURLCacheStoragePolicy上的文档说:
重要提示:iOS会忽略此缓存 政策,而是将其视为 NSURLCacheStorageAllowedInMemoryOnly。
根据实际测试,后者似乎就是这种情况。因此,无论您设置什么选项,都不会在iOS(当前)上获得缓存到磁盘。因此,如果您希望图像在运行之间保持不变,则需要将其保存到文件系统中。
有些人为此建议https://github.com/rs/SDURLCache,但我自己还没有尝试过。