关于符号断点(Symbolic Breakpoint)
符号断点是让方法中断的断点,也就是说,通过符号断点我们可以定位到指定的方法。那么这个有什么用呢?回想一下你是否遇到过这种情况:当接手别人的项目时,程序繁琐又复杂,想找当前页面对应的ViewController,结果找半天都找不到,恼怒之余,不禁骂出一个字:(此处省略一个字😱)。
其实,当你了解符号断点后,这都不是事了。
思路
每个ViewController都有viewWillAppear:
方法,那么我们只需要定位到viewWillAppear:
这个方法,然后将执行这个方法的对象打印出来,不就OK了吗?
符号断点登场
先来看看符号断点
在这里添加符号断点编辑符号断点
编辑符号断点如上图:我添加了一个符号断点用于截取BaseViewController(我的所有ViewController都继承自BaseViewController)的
viewWillAppear:
方法(注意:viewWillAppear:
有冒号,因为带参数,不写冒号无法截取此方法)。我给这个符号断点添加了三个action:
-
po self
用于在控制台打印出执行这个方法的对象(你以为只是打印出来就可以了吗?) -
Log Message dnf
用于在控制台打印出“dnf”(想想为什么要打印出“dnf”,以及再想想为什么打印出“dnf”而不是“LOL”) -
Sound Glass
会在执行这个方法时发出悦耳的声音(只是为了好听吗?)
符号断点添加编辑完成后运行程序,你首先会听到清脆的一声。。。这提示你符号断点对应的方法已经被执行,你可能会说哎呀妈呀说好的ViewController呢?别急,在控制台搜索“dnf”,“dnf”上面的那个对象就是你的对象(很满意吧?),如果没有Log Message dnf
,你将很难找到对象,你只有慢慢在控制台里寻找你的对象,所以,现在知道dnf什么用了吧(助你快速找到对象)。
比如说我的运行结果如下图:
后记
关于符号断点,基本上就那么多吧。文中如有差错,请务必提出,更欢迎提出更好的方法或者符号断点更多的用法,相互学习😄(不要问我为什么不打印出“LOL”)
网友评论