iOS ARC也会有内存泄露
来源:互联网 发布:centos6.5图形网络配置 编辑:程序博客网 时间:2024/06/10 20:56
iOS提供了ARC功能,很大程度上简化了内存管理的代码。
但使用ARC并不代表了不会发生内存泄露,使用不当照样会发生内存泄露。
下面列举两种内存泄露的情况。
1,循环参照
A有个属性参照B,B有个属性参照A,如果都是strong参照的话,两个对象都无法释放。
这种问题常发生于把delegate声明为strong属性了。
例,
@interface SampleViewController
@property (nonatomic, strong) SampleClass *sampleClass;
@end
@interface SampleClass
@property (nonatomic, strong) SampleViewController *delegate;
@end
上例中,解决办法是把SampleClass 的delegate属性的strong改为assing即可。
2,死循环
如果某个ViewController中有无限循环,也会导致即使ViewController对应的view关掉了,ViewController也不能被释放。
这种问题常发生于animation处理。
例,
比如,
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
tansition.repeatCount = HUGE_VALL;
[self.view.layer addAnimation:transition forKey:"myAnimation"];
上例中,animation重复次数设成HUGE_VALL,一个很大的数值,基本上等于无限循环了。
解决办法是,在ViewController关掉的时候,停止这个animation。
-(void)viewWillDisappear:(BOOL)animated {
[self.view.layer removeAllAnimations];
}
内存泄露的情况当然不止以上两种。
即使用了ARC,我们也要深刻理解iOS的内存管理机制,这样才能有效避免内存泄露。
- iOS ARC也会有内存泄露
- iOS ARC也会有内存泄露
- iOS ARC也会有内存泄露
- iOS ARC也会有内存泄露
- iOS ARC也会有内存泄露
- iOS ARC也会有内存泄露
- iOS ARC 内存泄露问题
- [IOS 开发] ARC内存泄露
- iOS ARC下内存泄露 注意点
- IOS ARC下内存泄露总结
- IOS ARC内存管理,提高效率避免内存泄露
- IOS ARC内存管理,提高效率避免内存泄露
- IOS ARC内存管理,提高效率避免内存泄露
- arc依然内存泄露??!?!?!?!?!??
- ARC-分析内存泄露
- ARC中的内存泄露
- iOS开发 ARC下造成内存泄露的问题
- iOS ARC内存泄露的几种情况总结
- 【leetcode】Longest Substring Without Repeating Characters
- Java 将文件打包成 tar 文件
- pyrDown和pyrUp函数
- 今日笔记之 页面跳转 为tableview添加手势关闭键盘 textview获取焦点
- POI解决EXCLE导入03,07兼容性问题
- iOS ARC也会有内存泄露
- mongodb创建集合
- notifyDataSetChanged()刷新ListView(使用JSONArray绑定的Adapter)
- 2015年多校训练总结
- jsapi微信支付v3版
- 数据挖掘学习路线
- Deck
- Android之ExpandableListView的属性(Group不展开)
- [置顶] VS2010中文注释带红色下划线的解决方法