NSLog的强大之处在于,它能在代码运行过程中显示变量值以及程序实际走向,能帮助我们发现大量错误和潜在风险。我们希望尽可能多的用到NSLog,希望它能无处不在,但是即便设定编译配置为 Release,NSLog() 的代码也会被编译到最终文件中(system console) ,可以在.app文件中被查看,这显然不是一个好消息。
它的运行会占用时间和设备资源。当我们用Simulator运行一个大型程序时,NSLog的资源占用并不引人注意,风险也不会显示出来。但到了真机上,会发现很“卡”,FPS也降到了各位数。
复制下面代码,并添加在应用程序中的*Prefix.pch文件内;
//release模式通常会定义 __OPTIMIZE__,当然debug模式不会。
#ifndef __OPTIMIZE__
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif