动态检索当前方法的名称

时间:2009-09-22 00:23:30

标签: objective-c

我希望能够为我项目中的所有类添加当前类名和方法名的跟踪消息。

有没有办法在运行时获取当前方法的名称,类似于:

NSLog(@"classname: %@", [self className]);

其中self是从NSObject派生的类?

3 个答案:

答案 0 :(得分:35)

NSLog(@"method name: %@", NSStringFromSelector(_cmd));

_cmd是所有Objective-C方法都接收的隐藏参数(如self)。它的值是用于调用方法的选择器。

答案 1 :(得分:18)

EDITED: 我认为这种方法更通用...检查出来..

NSLog(@"%s", __PRETTY_FUNCTION__);

答案 2 :(得分:1)

这也有效:

NSLog(@"%@", [NSString stringWithUTF8String:__func__])