这里主要写二个方面的图片缓存问题:
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.