最原始的方式可能是在 VC 的 dealloc 方法中输出打印页面已经被释放的日志。
下面介绍一种方式,无侵入性,也不需要编写任何代码,但局限性在于只能Xcode在跑工程时使用。
只需要执行下面四步,从此一生无忧。
- 转到Breakpoint Navigator(菜单视图>导航器>显示Breakpoint Navigator或⌘ - command+ 8)
- 单击左下角+,并选择Symbolic Breakpoint
- 按照如下设置
(1)设置Symbol值-[UIViewController dealloc]
(2)Log Message将消息设置为要打印到控制台的任何内容,将其设置为--- dealloc @(id)[$arg1 description]@
(3)勾选Automatically continue after evaluating actions选项,因为我们不希望调试器在释放视图控制器时暂停
- 配合控制台的过滤功能,非常直观能看到VC是否被释放
扩展
其实从上面我们就可以知道,Symbolic Breakpoint是一个非常强大的断点调试功能,只需要我们改变设置Symbol值,我们就可以监测到指定某个方法的调用时机。例如监控视图的销毁,那就设置Symbol值为-[UIView dealloc]。这个方面的使用,特别是在分析crash,涉及到汇编层面时,特别有效。