在pch文件中加入以下代码,能避免发布环境下的输出打印,并且在开发环境下能简单清晰的查看打印信息。
#ifdef __OBJC__
#ifdef DEBUG
#define NSLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define NSLog(...)
#endif
#endif
首先简单介绍一下上面的宏定义:
"#ifdef _OBJC_ "中的宏定义保证只会在 OC 的代码中被引用,否则,一旦引入 C/C++ 的代码或者框架,就会出错!
"#ifdef DEBUG" 中的宏定义保证只在开发环境下进行宏的替换,而在发布环境下是无效的。
很多人在开发中都会使用宏替换来避免发布环境下的打印输出,非常简单,一般不会有人注意,但是我推荐的这种方式有几个小优点:
1.用NSLog替换原有打印,由于宏的优先性,这样可以替换项目中已有的NSLog。
2.(@"%s [Line %d] " fmt)的设置能在控制台输出打印的具体所在行,一目了然,方便查找。