1、使用imageName:加载图片
(1)加载内存当中之后,会一直停留在内存当中,不会随着对象的销毁而销毁。
(2)加载进去图片之后,占用的内存归系统管理,我们无法管理。
(3)相同的图片,图片不会重复加载。
(4)加载到内存中后,占据内存空间较大。
2、使用imageWithContentsofFile:加载图片
(1)加载到内存当中后,占据内存空间较小。
(2)相同的图片会被重复加载内存当中。
(3)对象销毁的时候,加载到内存中图片会随着一起销毁。
iOS7与iOS8的适配
1、[UIImage imageWithContentsOfFile:]
路径需要加上沙盒路径以及你的文件名
例如我的:
NSBundle *bundle = [NSBundle mainBundle];
NSString *resourcePath = [bundle resourcePath];
NSString *filePath = [resourcePath stringByAppendingPathComponent:@"cwrz_table_btn@2x.png"];
UIImage *image = [UIImage imageWithContentsOfFile:filePath];
2、iOS7:当从子bundle中读取图片时,文件名要加上@2xpng
NSBundle *bundle = [NSBundle mainBundle];
NSString *resourcePath = [bundle resourcePath];
NSString *filePath = [resourcePath stringByAppendingPathComponent:@"cwrz_table_btn"];
UIImage *image = nil;
if (ksystemVeesion>=8.0) {
image = [UIImage imageWithContentsOfFile:filePath];
}else{
image = [UIImage imageWithContentsOfFile:[filePath stringByAppendingString:@"@2x.png"]];
}
下面的相关连接很值得看一看
http://blog.csdn.net/dqjyong/article/details/26969355