使用
NSLog 的一个风险是:它的运行会占用时间和设备资源。简单而粗暴的解决方案是:
在
release 前,将所有的 NSLog 注释掉。简单有效,但副作用是:下次你要调试时,又得将
NSLog 一个个取消注释。
以
release 模式编译的程序不会用 NSLog 输出,而以 debug 模式编译的程序将执行 NSLog
的全部功能。
解决步骤:
1
修改
<AppName>-Prefix.pch ,增加以下的宏代码
1
#ifdef DEBUG
2
# define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号:%d]
\n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
3
#else
4
# define DLog(...);
5
#endif
2
在程序中使用
DLog 来替换原来的 NSLog
1
DLog(@
"当前程序目录是:%@"
, [self applicationDocumentsDirectory ]);
3
4
修改项目的配置,使得在
debug 编译的时候,编译 DLog 的宏,产生详细的日志信
息,而
release 的时候,不产生任何控制台输出
在
Other Linker Flags 中,在 debug 的时候,加入编译属性 -DEBUG