如何列出所有被调用的方法?

时间:2013-01-17 15:25:30

标签: iphone ios

有没有什么方法可以列出所有被调用的方法,比如一个接一个地调用?例如,现在我正在做同样的事情,我正在使用NSLog(@“MethodName”);我是那种方法。 我想在NSLog中通过自动方式做到这一点。有可能吗?

3 个答案:

答案 0 :(得分:1)

如果您没有太多方法,可以使用

NSLog(@"%@" , NSStringFromSelector(_cmd));

记录他们的名字。这样您就不必每次都手动复制签名。

答案 1 :(得分:1)

创建一个属性'NSMutableArray * calledMethods;`

在你的每个方法中使用

[self.calledMethods addObject:NSStringFromSelector(_cmd)];

无论何时你想打印NSLog它。

答案 2 :(得分:1)

我想你想要:

printf("%s\n", __PRETTY_FUNCTION__ ) ;

产生(例如)

  

- [AppDelegate应用程序:didFinishLaunchingWithOptions:]

或者,您可以使用dtrace。这个答案应该有所帮助:https://stackoverflow.com/a/3874726/210171

同时检查https://stackoverflow.com/a/4604249/210171(相同的链接问题)。似乎有一个环境变量NSObjCMessageLoggingEnabled你可以设置......