ios 图片加载方式,内存控制,尽量避免使用imageNamed,使用ARC也需要
来源:互联网 发布:linux imwallet 编辑:程序博客网 时间:2024/05/17 16:56
1.为什么尽量避免使用imageNamed?
使用这种方式生成的对象被autorelease之后,图片依然存在于内存,并不会及时回收,并且没有明确的释放方法。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存。
这是为什么?如果对于大量同一图片的复,使用这个方法可行。以这种方式加载的图片会缓存一份在内存中,以后如果发现有同名的图片,则不会再次加载。缺点是这份缓存无法预知释放时间与条件。
2.最好使用方式:imageWithContentsOfFile,根据文件路径加载图片。这种方式加载的图片不会缓存在内存中,当对象被释放之后,图片也会被释放。
#define recourcesPath [[NSBundle mainBundle] resourcePath]
NSString * imageFile = [[NSString alloc] initWithFormat:@"%@/%@",recourcesPath, filename];
UIImage * tempImage = nil;
tempImage = [[UIImage alloc] initWithContentsOfFile:imageFile];
[imageFile release];
imageFile = nil;
这样得到的图片tempImage,并不是autorelease,这可以手动释放,释放的时候已将图片从内存中清除,可控内存是它的优点。
3.2中提到的加载方式,可以封装成一个类似于imageNamed的方法。新建一个UIImage Category,将2中的代码封装成一个函数即可。
参考:http://www.cnblogs.com/zeejun/archive/2012/05/08/2485535.html
参考:stackoverflow.com
DEMOURL : http://download.csdn.net/detail/take8619702/4918991
- ios 图片加载方式,内存控制,尽量避免使用imageNamed,使用ARC也需要
- 加载图片使用imageNamed方法还是 imageWithContentsOfFile?
- ios 内存使用陷阱 和imageNamed 、imageWithContentsOfFile:
- ios 内存使用陷阱 和imageNamed 、imageWithContentsOfFile:
- IOS图片加载方式:imageNamed和imageWithContentsOfFile的区别
- 使用imageNamed 与 imageWithContentsOfFile加载图片的区别
- iOS加载图片imageNamed方法还是imageWithContentsOfFile
- Android开发中尽量避免使用jpg图片
- 【iOS开发】 iOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
- 为什么尽量避免使用触发器
- C++尽量避免使用指针
- IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
- IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
- IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
- iOS 内存管理--使用MRC(非ARC)
- 尽量使用ToUpper比较,避免使用ToLower
- iOS UIImage类 imageNamed方法使用不当
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- 欧几里得算法
- html+javascript实现图片变换特效
- CentOS5.4 安装过程(图解)
- 一种渐变色条形Bar的绘制
- 制作8051单片机电路
- ios 图片加载方式,内存控制,尽量避免使用imageNamed,使用ARC也需要
- Codeforces Round #157 (Div. 2)——B
- linux c编程 多线程(初级)
- 抽样置信度计算
- 完全卸载Oracle11g
- 动易SiteWeaver™中常用标签说明
- Struts2常用标签使用和总结(包括前后台,出生日期,级联城市,遍历列表等)
- 关于新浪微博注销方法
- Exercise for Chapter 7 of "Intermediate Perl"