有时候,在查看别人的大型Objective-C程序时,很难知道从哪里开始.
在这种情况下,我认为记录每个非Apple方法的调用会很有帮助.
有没有办法做到这一点?基本上,在某个中心位置进行一次更改,并记录每个被调用的方法.优选地限于非Apple方法.
我编写了一个调试宏,只要全局kDebug标志==,就会向传入的字符串打印传入的字符串YES.
每当调用任何方法时,我都需要打印出方法的名称及其类名.
当我辛苦地遍历每个方法并在字符串中写出类的名称和方法时,这很好.
是否有任何特殊的处理程序在调用Objective-C中的任何方法时被调用,如果是这样,有没有办法我可以以某种方式覆盖它来调用我的调试宏?
这样做的全部目的是让我不必遍历代码中的每个方法,并在调试宏调用中手动编写方法签名.
通常在调试时,重要的是要知道以什么顺序调用类的哪些方法.天真的解决方案(我到目前为止一直在使用)是NSLog在每个方法的顶部弹出一个.但这是耗时,重复,丑陋的,如果我忘记在调试后删除日志,我的代码看起来很少.
更清晰的解决方案是在我的每个方法上设置断点,配置它们的操作以发出调试器命令:po NSStringFromSelector(_cmd)并将它们设置为自动继续.这更漂亮,使我不必记住删除所有这些NSLog,但同样重复或耗时.
我真正想要的是一种设置符号断点的方法,该断点在每个方法(类的一个模块?)上都会中断.任何调试/运行时主人都有一个解决方案或提示从哪里开始寻找?