background image

       ios

      iphone

 

     

编程中使用封装的

 

     NSLog

 

     

来打印调试信息

 

  

使用

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