12

我想禁用NSLog()应用程序中的所有实例。我发现了一些这样做的代码:

#ifndef DEBUG
#define NSLog //
#endif

但是将此代码添加到每个文件中并不是一个好主意。我怎样才能让它更容易?

4

5 回答 5

11

Xcode 有一个预编译的头文件({project-name}-Prefix.pch默认在 Supporting Files 组中),这是放置将在项目中的每个文件中使用的代码的好地方。要更进一步并改进日志消息本身,请参阅是否真的不应该在生产代码上使用 NSLog()?.

于 2013-04-14T17:31:04.500 回答
6

将以下行添加到常量文件中:

#define DEBUGGING NO    //or YES
#define NSLog if(DEBUGGING)NSLog

以下两个句子给出相同的结果

#define NSLog

#define NSLog //

因为所有以 // 开头的文本都在预编译阶段被删除(包括“//”)

于 2014-10-26T11:17:05.613 回答
2

我所做的是将它放在预编译的头文件(YourAppName.pch)中:

#define MyLog if(0); else NSLog

然后我在应用程序的其他地方将所有 NSLog 更改为 MyLog。它就像 NSLog 一样工作。但是当你想禁用 NSLog 时,回到.pch文件并更改0to1和 presto,所有日志记录都会停止。

于 2013-04-14T17:40:27.190 回答
2

这也将处理使用时出现的警告

#define NSLog //

编码:

#ifndef DEBUG
  #define NSLog(...)
#endif
于 2015-05-25T18:57:05.547 回答
0

当您不需要 NSLOG 到您的常量文件时,只需添加以下行

#define NSLog                       //

并在需要时发表评论。

于 2013-07-25T18:50:55.467 回答