我尝试在发布版本中禁用NSLog。
我将以下代码放在.pch文件中
#ifndef __OPTIMIZE__
#define NSLog(...)NSLog(__ VA_ARGS__)
#else伪
#define NSLog(...){}
#endif
它不起作用,所以我尝试了
#define NSLog(...){}
它仍然将输出打印到控制台。
任何帮助都会很好,谢谢!
答案 0 :(得分:1)
您将声明自己的日志功能并使用它。如果你想要一个va列表,它的实现可以通过NSLogv。它的实现也不会在禁用时将消息转发到NSLogv,因此您可能需要多种记录器。
答案 1 :(得分:1)
您想要的内容类似于this previous SO answer on NSLog tips and tricks中对DLog的定义。
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
答案 2 :(得分:0)
确保在构建设置中定义了__OPTIMIZE__
,或者在.pch文件本身中定义了更高版本,并且在前缀标头(GCC_PREFIX_HEADER)构建设置中设置了pch文件。您也可以将NSLog(...)定义为无
#define NSLog(...)
答案 3 :(得分:0)
在项目的构建设置中设置的预处理器宏:DEBUG = 1 $(已继承)
所以现在只需使用:if(DEBUG)NSLog(@“Your log”);
答案 4 :(得分:0)
在您的应用程序.pch文件中放入以下行。 定义NSLog(dese,...)
它将停止打印。