1 打印当前的函数和行号:
NSLog
(
@"%s:%d obj=%@"
, __func__, __LINE__, obj);
其中__func__和__LINE__都是预编译的宏,编译时会分别替换为当前函数和当前行号。
下面是一些常用于打印日志的宏。
宏 | 说明 |
---|---|
__func__ | 打印当前函数或方法,c字符串 |
__LINE__ | 打印当前行号,整数 |
__FILE__ | 打印当前文件路径,c字符串 |
__PRETTY_FUNCTION__ | 打印当前函数或方法(在C++中会包含参数类型),c字符串 |
2.打印一个类名,消息名,当前堆栈信息
代码 | 说明 |
---|---|
NSStringFromSelector(SEL) | 获取selector的名字 |
NSStringFromSelector(_cmd) | 获取当前方法名 |
NSStringFromClass([object class]) | 获取object的类名 |
NSThread callStackSymbols] | 获取当前线程的栈,是一个NSArry,包含堆栈中所有函数名。 |