iphone - 打开和关闭 NSLogs 的正则表达式?

标签 iphone objective-c ios regex xcode

我有一个大型 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/

相关文章:

ios - 在 config.xml 中为 IOS 命名闪屏文件 (Phonegap)

ios - Swift:SKAction 在触摸时不起作用

iphone - 使用 UIAppearance 代理自定义字体时,MFMailComposeViewController 不起作用

iphone - 将纬度/经度转换为度数/弧度?

iphone - 指针和引用

ios - 使用自动布局隐藏UIView时以编程方式添加约束

ios - UIActionSheet的动态按钮

ios - 通用链接不起作用

ios - 导入外部库后,具有 UINavigationControllerDelegate 的 ViewController 中出现冗余一致性错误

ios - Coredata 中的 child 数