ios developers

iOS中Xcode查看内存未释放的N种方式

2019-03-24  本文已影响0人  wg689

构造未释放代码 (代码在文末的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

按照箭头顺序查找引用环

demo 的链接

内存泄漏demo

上一篇下一篇

猜你喜欢

热点阅读