我在tableview中显示图片。我希望如果已经下载了图像,则不要再次下载。如何使用缓存目录实现此方案。
答案 0 :(得分:2)
看一下NSCache,它的工作方式就像一个可变的字典,但它是安全的。
NSCache对象在几个方面与其他可变集合不同:
NSCache类包含各种自动删除策略 确保它不会占用太多的系统内存。该 如果需要内存,系统会自动执行这些策略 其他应用。调用时,这些策略会删除一些项目 从缓存中,最小化其内存占用。
您可以从缓存中添加,删除和查询缓存中的项目 线程,而不必自己锁定缓存。
与NSMutableDictionary对象不同,缓存不会复制密钥 放入它的对象。
这些功能对于NSCache类是必需的,因为缓存可能 决定在幕后异步自动变异 如果它被调用以释放内存。
您可以使用网址和图片本身作为值来修改图片
Documentation。
NSHipster发帖。
答案 1 :(得分:0)
您应该使用SDWebImage。这是很棒的图书馆。从给定的github链接下载,只需将SDWEbImage
文件夹拖放到项目中即可。
然后在您的班级中导入UIImageView+WebCache.h
,例如
#import "UIImageView+WebCache.h"
然后在cellforRowAtIndexpath
[cell.myImageView sd_setImageWithURL:finalImageUrl];
您可以阅读github页面上的说明,了解有关此库的更多详细信息
希望这会有所帮助:)
答案 2 :(得分:0)