构造未释放代码 (代码在文末的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 看
可以很清楚的看到那些对象未释放 ,一般重点关注未释放的对象
image.png
方式2) leaks
image.png可以看到上图classA classB 有30 个对象未释放
image.png
点击后查看具体地方泄漏
image.png 按照箭头顺序查找引用环.png
按照箭头顺序查找引用环
网友评论