iOS检测循环引用

作者: 佟瑾年 | 来源:发表于2016-05-31 17:23 被阅读3770次

    Xcode的Insruments 工具集可以很方便的检测循环引用。为了测试效果,我们在一个测试用的ViewController中填入以下代码,该代码中的firstArray,和secondArray相互引用了对方,构成了循环引用。

    - (void)viewDidLoad {
    [super viewDidLoad];
    NSMutableArray *firstArray = [NSMutableArray array];
    NSMutableArray *secondArray = [NSMutableArray array];
    [firstArray addObject:secondArray];
    [secondArray addObject:firstArray]; 
     }
    

    在Xcode的菜单栏选择“Product”-->“Profile”,然后选择“Leaks”,在单击右下角的“Choose”按钮开始检测。点击运行如下图所示。

    psb.png

    这时候iOS模拟器会运行起来,我们在模拟器里面进行一些界面的切换操作。稍等几秒钟就可以看到Instrunments检测到了我们这次的循环引用。Instrunments中会用红色的x来表示内存泄露的产生,
    如下图所示。

    psb副本.png

    我们可以切换到“Leaks”这栏,单击“Cycles” &“Roods”就可以看到以图形方式显示出来的循环引用。这样我们就可以非常方便的找到循环引用的对象了,如下图所示。


    psb-2.png

    过多使用block的朋友们,循环引用可能是你们遇见最多的问题,这样我们以后就可以用这个方法查找循环引用了。

    相关文章

      网友评论

        本文标题:iOS检测循环引用

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