iOS-Leaks

作者: linbj | 来源:发表于2017-06-15 17:49 被阅读159次

    如果要检测内存泄露,我们会使用Xcode自带的Instruments中的Leaks工具来检测.

    注释掉 CGPathRelease(path);这句话会导致内存泄露,因为项目中使用c的类创建了对象,没有手动释放该对象。现在利用Leaks来查找项目的内存泄露

    #import "TriangleView.h"
    
    @implementation TriangleView
    
    - (void)drawRect:(CGRect)rect {
        
        CGContextRef ref      = UIGraphicsGetCurrentContext();
        CGMutablePathRef path = CGPathCreateMutable();
        CGPathMoveToPoint(path, nil, 20, 20);
        CGPathAddLineToPoint(path, nil, 100, 100);
        CGPathAddLineToPoint(path, nil, 20, 100);
        CGContextAddPath(ref, path);
        CGContextSetRGBFillColor(ref, 0, 1, 0, 1);
        CGContextDrawPath(ref, kCGPathFillStroke);//最后一个参数是填充类型
    //    CGPathRelease(path);
    }
    @end
    

    打开Instruments,快捷键command+i 或者

    image.png image.png

    点击Leaks

    image.png

    点击左上角红圈run项目

    可以看到有一个泄露


    image.png image.png

    这样就定位到了泄露地点。

    相关文章

      网友评论

        本文标题:iOS-Leaks

        本文链接:https://www.haomeiwen.com/subject/hyjuqxtx.html