标签:
[UIImage imageNamed:ImageName];
1、加载图片占据的内存较大
2、相同的图片只会加载一份到内存中,如果同时使用,使用同一个对象即可
3、当对象销毁,图片对象不会随着一起销毁
NSString *path = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"png"];
myImage = [UIImage imageWithContentsOfFile:path];
1、加载图片占据的内存较小
2、相同的图片会多次加载到内存中,如果同时使用图片,使用的是不同的对象
3、当对象销毁,图片对象会随着一起销毁
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
NSData *image = [NSData dataWithContentsOfFile:filePath];
[UIImage imageWithData:image];
1、加载的图片会以数据的方式加载到程序。
2、当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。
无论用哪种方式加载图像,图像使用结束后,一定要记得显示释放内存。
总结:
imageNamed:如果一些图片在多个界面都会使用,并且图片较小,使用频率高(图标/小的背景图)
imageWithContentsOfFile:只在一个地方使用,并且图片较大,使用频率不高(版本新特性)
imageNamed、imageWithContentsOfFile、imageWithData
标签:
原文地址:http://www.cnblogs.com/sjxjjx/p/5071189.html