iOS无侵入检测UIViewController的销毁

最原始的方式可能是在 VC 的 dealloc 方法中输出打印页面已经被释放的日志。

下面介绍一种方式,无侵入性,也不需要编写任何代码,但局限性在于只能Xcode在跑工程时使用。

只需要执行下面四步,从此一生无忧。

  1. 转到Breakpoint Navigator(菜单视图>导航器>显示Breakpoint Navigator或⌘ - command+ 8)
image-20200701153203864.png
  1. 单击左下角+,并选择Symbolic Breakpoint
image-20200701151757145.png
  1. 按照如下设置
image-20200701151413826.png

(1)设置Symbol值-[UIViewController dealloc]

(2)Log Message将消息设置为要打印到控制台的任何内容,将其设置为--- dealloc @(id)[$arg1 description]@

(3)勾选Automatically continue after evaluating actions选项,因为我们不希望调试器在释放视图控制器时暂停

  1. 配合控制台的过滤功能,非常直观能看到VC是否被释放
image-20200701151533192.png

扩展


其实从上面我们就可以知道,Symbolic Breakpoint是一个非常强大的断点调试功能,只需要我们改变设置Symbol值,我们就可以监测到指定某个方法的调用时机。例如监控视图的销毁,那就设置Symbol值为-[UIView dealloc]。这个方面的使用,特别是在分析crash,涉及到汇编层面时,特别有效。

你可能感兴趣的:(iOS无侵入检测UIViewController的销毁)