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

Ios 如何在Objective-C中检测方法调用,ios,objective-c,logging,Ios,Objective C,Logging,我想知道是否有办法在iOS应用程序中记录所有方法调用?我知道我可以在我想记录的每个方法调用中添加NSLog,但我想知道是否有更简单的方法?例如,一些内部机制允许我钩住所有方法调用,并在这种情况下触发一些方法/宏。我简单地说,如何捕捉方法调用并调用其他方法呢?有可能吗 如果您只想对几个类执行此操作,那么我认为您可以将decorator模式与NSProxy一起使用,这已经有了(尽管相当隐藏)支持: 只需将环境变量NSObjcMessageLoggingEnabled设置为YES 然后查看文件:/t

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

如果您只想对几个类执行此操作,那么我认为您可以将decorator模式与
NSProxy

一起使用,这已经有了(尽管相当隐藏)支持:

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

然后查看文件:
/tmp/msgSends-


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

我将检查它,谢谢。