转:类别,属性,成员变量,arc学习总结
2014-11-30 18:39
239 查看
在重构代码时,认真处理一些内存未释放的问题。看到自已的目录树图标的加载,好象没有释放内存,于是,将下面的代码做修改:
改成:
结果,产生内存访问错。
再改:
同样报错。
查了资料,才知道自已认识上的错误:
1:对于类方法(静态方法)默认是autoRelease的。我添加的代码导致了过渡释放。所有类方法都会这样吗?我不能确定。反正这里是。
有人说:类方法创建的会自动加入到自动释放池中。
2:对于imageNamed,系统有缓存的处理,相同图片在第二次使用,会使用缓存。
3:由于2,所以在加载图片时,如果是大图片,或者不重复出现的,不要使用 imageNamed来加载图片,以避免太多的内存消耗。
学习了,记录之。
转:/article/7907888.html
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"]; <span style="margin: 0px; padding: 0px; line-height: 1.8; color: rgb(255, 0, 0);"> //imageNamed 是类的静态方法</span> cell.directoryAccessoryImageView.image = img; img release];
同样报错。
查了资料,才知道自已认识上的错误:
1:对于类方法(静态方法)默认是autoRelease的。我添加的代码导致了过渡释放。所有类方法都会这样吗?我不能确定。反正这里是。
有人说:类方法创建的会自动加入到自动释放池中。
2:对于imageNamed,系统有缓存的处理,相同图片在第二次使用,会使用缓存。
3:由于2,所以在加载图片时,如果是大图片,或者不重复出现的,不要使用 imageNamed来加载图片,以避免太多的内存消耗。
学习了,记录之。
转:/article/7907888.html
相关文章推荐
- 类别,属性,成员变量,arc学习总结
- 转:类别,属性,成员变量,arc学习总结
- 类别,属性,成员变量,arc学习总结
- 类别,属性,成员变量,arc学习总结
- 类别,属性,成员变量,arc学习总结
- 转:类别,属性,成员变量,arc学习总结
- 类别,属性,成员变量,arc学习总结
- 类别,属性,成员变量,arc学习总结
- IOS categoty,成员变量,属性实现的总结
- opencv学习笔记——Mat属性与成员函数总结
- 类别,属性,成员变量,arc学习总结
- 【IOS 开发学习总结-OC-10】★ objective-c面向对象之——成员变量,模拟类变量,单例模式
- iOS类别(category)不能添加成员变量但是可以添加属性的问题
- Objective-C的成员变量、属性与带下划线属性的总结
- 重载/重写 - 继承,多态,封装 - 属性/成员变量 - 类别
- objective-C学习笔记(三)数据成员:属性与实例变量
- ios类别(category)不能添加成员变量但是可以添加属性的问题
- OC学习笔记-属性与成员变量的区别
- runtime 获取类的属性,方法,成员变量,以及协议 字典转model 总结
- iOS:属性、修饰词(内存管理) 及其对应成员变量 、ARC