这里主要写二个方面的图片缓存问题:
1. 本地图片加载缓存问题.
2. 网络图片下载缓存问题.
一 本地图片加载缓存问题.
图片加载这里有2中方法:
第1种
UIImageView *myImageView = [[UIImageView alloc] init];
myImageView.image = [UIImage imageNamed:@"logo.png"];
这种方法有明显的缺点同时也是他的优点, 这种方法在application bundle的顶层文件夹寻找由供应的名字的图象 。 如果找到图片,装载到iPhone系统缓存图象。那意味图片是(理论上)放在内存里作为cache的。如果是很多大图,高清图,那么对于手机内存会产生非常大的内存负担,
慎用!
第2种
UIImageView *myImageView = [[UIImageView alloc] init];
NSString *path = [[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"];
myImageView.image = [UIImage imageWithContentsOfFile:path];
该方法不会加载到缓存, 针对不经常显示的图片, 某些大图,使用这种方法是最好的. 但是!这种方法不能自动识别@2x图..
总结下,做UI界面加图片,就用imageNamed: 加载个别大图,就用imageWithContentsOfFile:
二 网络图片下载缓存问题.
其实我们一直是站在巨人的肩膀上. 这方面可以直接用第三方库, 简单, 方便, 高效. 具体用哪个第三库看你们自己的需求. 我常用的是SDwebImage.
本文探讨了iOS应用中图片加载及缓存的两种方法:直接加载与通过文件路径加载,并对比了它们的优势与局限性;同时介绍了网络图片下载及缓存的最佳实践,推荐使用第三方库如SDWebImage提升效率。

189

被折叠的 条评论
为什么被折叠?



