iOS中屏蔽和使用Nlog的方法,解释

这篇文章好像挺不错的[iOS开发debug跟release版本NSLog屏蔽方法](http://www.jianshu.com/p/172d66837120)

//*1,屏蔽和使用Nlog的方法,解释

#define IOS_DEBUG

#ifdef IOS_DEBUG

//下面一句表示程序中的NSLog(...)编译时都用NSLog(__VA_ARGS__)来替换,会打印出信息

//#define NSLog(...) NSLog(__VA_ARGS__)

//这一表示程序中的DLog(...)编译时都用NSLog(__VA_ARGS__)来替换,会打印出信息

//#define DLog(...) NSLog(__VA_ARGS__);

//下面这句用来屏蔽自定义的DLog打印信息

#define DLog(...)

//下面这句用来屏蔽系统自带的nslog打印信息

//#define NSLog(...)

//以上宏定义的结束标识,少了它就会报错.

#endif


注意:1)#define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:

#define  PI   3.1415926

程序中的:area=PI*r*r 会替换为3.1415926*r*r

如果你把#define语句中的数字9 写成字母g 预处理也照样带入。



// 2. debug时需要打印信息就在头文件中,或者pch文件中写成如下形式

#define IOS_DEBUG

#ifdef IOS_DEBUG

#define NSLog(...)   NSLog(__VA_ARGS__);

#define DLog(...)   NSLog(__VA_ARGS__);

#endif



// 3. 发布时不需要打印信息就在头文件中,或者pch文件中将上面写的内容改成如下形式,就不会打印出任何信息了

#define IOS_DEBUG

#ifdef IOS_DEBUG

#define DLog(...)

#define NSLog(...)

#endif

你可能感兴趣的:(iOS中屏蔽和使用Nlog的方法,解释)