寻找一个泄漏不是那么简单。你需要戴上侦探帽,拿出你的放大镜从你的外套,并开始寻找线索。
每一个泄露的对象都有一个负责任的库。如果是UIKit、Foundation或任何低级别的库,你将无法准确地指出导致泄漏的代码位置,因为这些库是以二进制文件的形式存在的。
如果负责的库是你正在编写的库,那么你可以通过点击右边的堆栈跟踪面板中的正确方法来进入代码。有一个提示是,如果有相应的代码可用,那么堆栈跟踪面板中列出的方法就会变成高亮显示。
但是,由于不是那么直接,往往你自己的一段代码会导致一些内部库的泄漏,很难调试。你需要先去看一些教程和练习资料再开始。有些东西肯定不能在stackoverflow上回答。
如果你想找到分配泄漏内存的代码,使用跳条切换到调用树视图。要在调用树视图中找到你的代码,请反转调用树视图并隐藏系统库。
在调用树视图中双击你的一个函数将让你钻到分配泄漏内存的代码行。
阅读下面的文章,了解更多关于使用 Instruments 寻找内存泄漏的详细信息。