我有一个大型 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
当您的应用程序未处于 Debug模式时,这将禁用 NSLogs。这样您就不必实际从代码中删除它们,但它们不会对性能产生影响。
如果您想知道它是如何工作的,它会在未定义 DEBUG 宏时将 NSLog() 函数重新定义为空白。默认情况下,DEBUG 仅为调试项目定义。如果您愿意,您可以将其更改为以不同的方式打开和关闭,只需将第一行替换为#if SOME_OTHER_CONDITION。
关于iphone - 打开和关闭 NSLogs 的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175026/