NSLog使用技巧

在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)的设置能在控制台输出打印的具体所在行,一目了然,方便查找。

你可能感兴趣的:(NSLog使用技巧)