动态检索当前方法的名称

Ale*_*ove 17 objective-c

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

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

NSLog(@"classname: %@", [self className]);
Run Code Online (Sandbox Code Playgroud)

self是从NSObject派生的类?

Chu*_*uck 35

NSLog(@"method name: %@", NSStringFromSelector(_cmd));
Run Code Online (Sandbox Code Playgroud)

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


Nis*_*ant 18

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

NSLog(@"%s", __PRETTY_FUNCTION__);
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案.我将它放入一个宏,如下所示:#define LOGME NSLog(@"%s",\ _\_ _ _ PRETTY_FUNCTION\_\_ _); (2认同)