构造未释放代码 (代码在文末的demo)
// 测试内存泄漏相关
- (void)testLeaks {
_timer = [NSTimer scheduledTimerWithTimeInterval:10
target:self
selector:@selector(handleTimer:)
userInfo:nil
repeats:YES];
// // 对象导致内存泄漏
for(int i = 0;i <10;i ++){
ClassA *a = [[ClassA alloc] init];
ClassB *b = [[ClassB alloc] init];
a.classb = b;
b.classa = a;
}
}
方式1) 通过xcode 看
可以很清楚的看到那些对象未释放 ,一般重点关注未释放的对象
![](https://img.haomeiwen.com/i1194882/7233ab55543fc438.png)
方式2) leaks
![](https://img.haomeiwen.com/i1194882/6f039adc949d9f8f.png)
可以看到上图classA classB 有30 个对象未释放
![](https://img.haomeiwen.com/i1194882/6beb6ef48d7672ab.png)
点击后查看具体地方泄漏
![](https://img.haomeiwen.com/i1194882/83f8f423a10cecef.png)
![](https://img.haomeiwen.com/i1194882/95bb18d0610ea65d.png)
按照箭头顺序查找引用环
网友评论