关于 UIImage ImageNamed的内存释放。
来源:互联网 发布:淘宝苹果id解锁可信吗 编辑:程序博客网 时间:2024/05/22 09:24
在重构代码时,认真处理一些内存未释放的问题。看到自已的目录树图标的加载,好象没有释放内存,于是,将下面的代码做修改:
if(isExpand) { cell.directoryAccessoryImageView.image = [UIImage imageNamed:@"TriangleSmall2.png"]; } else { cell.directoryAccessoryImageView.image = [UIImage imageNamed:@"TriangleSmall.png"]; } cell.imageView.image = [UIImage imageNamed:@"Folder.png"];
改成:
cell.directoryAccessoryImageView.image = [[UIImage imageNamed:@"TriangleSmall2.png"] autoRelease];
结果,产生内存访问错。
再改:
UIImage * img = [UIImage imageNamed:@"TriangleSmall2.png"];cell.directoryAccessoryImageView.image = img;img release];
同样报错。
查了资料,才知道自已认识上的错误:
1:对于类方法(静态方法)默认是autoRelease的。我添加的代码导致了过渡释放。所有类方法都会这样吗?我不能确定。反正这里是。
有人说:类方法创建的会自动加入到自动释放池中。
2:对于imageNamed,系统有缓存的处理,相同图片在第二次使用,会使用缓存。
3:由于2,所以在加载图片时,如果是大图片,或者不重复出现的,不要使用 imageNamed来加载图片,以避免太多的内存消耗。
学习了,记录之。
- 关于 UIImage ImageNamed的内存释放。
- UIImage imageNamed的释放问题
- 关于uiimage imagenamed内存可能占用大的替代方法
- UIImage imageNamed引起的内存问题1
- UIImage imageNamed引起的内存问题2
- UIImage imageNamed 内存问题!!!
- (UIImage *)imageNamed
- (UIImage *)imageNamed
- UIImage简谈:[UIImage imageNamed:]与 [UIImage imageWithContentsOfFile]的区别
- UIImage的ImageNamed 和 ImageWithContentOfFile的区别
- 逆向iOS SDK -- +[UIImage imageNamed:] 的实现
- ios开发UIImage imageNamed方法的误用
- ios开发UIImage imageNamed方法的误用
- UIImage imageNamed 与 imageWithContentsOfFile的区别
- ios开发UIImage imageNamed方法的误用
- UIImageView 的 UIImage 在 ARC 下释放内存
- 关于UIImage自动释放问题
- UIImage imagenamed 用法好坏
- War3快捷键大全—UD
- 为什么中断处理函数中不能使用printf语句
- MySQL开启慢查询
- android service 学习
- Spring-Data-Jpa
- 关于 UIImage ImageNamed的内存释放。
- html 页面部门打印
- 遮罩层DEMO
- War3快捷键大全—常用的键
- appassembler-maven-plugin
- priority_queue(优先队列)用法总结
- Android 资源文件中@、@android:type、@*、?、@+含义和区别
- JGTM'2004 [MVP] 对MarshalByRefObject的讲解 (zz.is2120)
- 还在为自己的将来幻想