我希望有一个可重用的日志记录方法或函数,它会调出从中调用它的方法的名称。例如:
- (void)exampleMethod {
CustomLog(); //Outputs "exampleMethod"
}
答案 0 :(得分:2)
函数不知道他们的调用环境(至少不是有用的)。唯一的方法是使用宏代替。在宏内部,您可以访问包含接收器和当前选择器的self
和_cmd
参数,以及包含方法的人类可读名称的__PRETTY_FUNCTION__
宏。一个C字符串。
答案 1 :(得分:0)
请参阅How to print out the method name and line number and conditionally disable 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