繁体   English   中英

用于打开和关闭NSLog的正则表达式?

[英]Regular expression for turning NSLogs on and off?

我有一个大型的Xcode项目,它有几十个NSLog,有些已经注释掉了。

Xcode中的查找/替换有一个正则表达式选项,所以如何让它注释掉所有活动的NSLog,其他查找/替换的方式可以再次打开它们。 所以,初始代码是:

//NSLog(@"one");
NSLog(@"two");

在正则表达式找到/替换后变为:

//NSLog(@"one");
//**NSLog(@"two");

转回来的是:

//NSLog(@"one");
NSLog(@"two");

有一个更好的解决方案。 把它放在你的prefix.pch文件中:

//disable logging when not in debug
#ifndef DEBUG
#undef NSLog
#define NSLog(args, ...)
#endif

当您的应用程序未处于调试模式时,这将禁用NSLog。 这样您就不必从代码中实际删除它们,但它们不会对性能产生影响。

如果您想知道它是如何工作的,它会在未定义DEBUG宏时将NSLog()函数重新定义为空白。 默认情况下,DEBUG仅为调试项目定义。 如果您愿意,只需用#if SOME_OTHER_CONDITION替换第一行,就可以将其更改为以不同的方式打开和关闭。

对此更好的解决方案是使用诸如DLog之类的宏,您可以使用调试(或您自己的编译器标志)来控制。 检查此链接 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM