如何在Objective-C中检测方法调用

时间:2013-10-21 10:42:54

标签: ios objective-c logging

我想知道是否有办法在iOS应用中记录所有方法调用?我知道我可以在每个调用我想记录的方法中添加NSLog,但我想知道是否有更简单的方法?例如,一些内部机制允许我挂钩所有方法调用并在这种情况下触发一些方法/宏。我简单的说,如何捕获方法调用并调用其他方法呢?它甚至可能吗?

2 个答案:

答案 0 :(得分:0)

如果你只想为几个班级做这件事,那么我认为你可以将装饰人模式与NSProxy一起使用。

答案 1 :(得分:0)

已经(虽然非常隐蔽)支持这个:

只需将环境变量NSObjcMessageLoggingEnabled设置为YES

即可

enter image description here

并查看文件:/tmp/msgSends-<processID>

如果您使用模拟器(我只在模拟器上测试过),该文件应该很容易找到,但可能需要越狱设备才能访问设备上的输出。我将看一下是否有办法将输出路由到用户定义的文件。