1

我想要一个可重用的日志记录方法或函数,它可以吐出调用它的方法的名称。例子:

    - (void)exampleMethod {
        CustomLog(); //Outputs "exampleMethod"
    }
4

2 回答 2

2

函数不知道它们的调用环境(至少不是以有用的方式)。唯一的方法是改用宏。在宏内部,您可以访问保存接收器和当前选择器的self_cmd参数,以及__PRETTY_FUNCTION__包含方法的人类可读名称作为 C 字符串的宏。

于 2010-04-21T02:14:00.463 回答
0

请参阅如何打印出方法名称和行号并有条件地禁用 NSLog?获取此答案的灵感和其他有用的 NSLog 提示。这是我想要的:

//place in PCH file
#define ILog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

//use in any file in your project
ILog(@"test");// outputs -[AppDelegate applicationDidFinishLaunching:] [Line 38] test
于 2010-04-21T02:19:17.577 回答