如何在整个应用程序中禁用NSLog?

Tim*_*ich 11 xcode objective-c nslog ios c-preprocessor

我想禁用NSLog()应用中的所有实例.我发现了一些代码:

#ifndef DEBUG
#define NSLog //
#endif
Run Code Online (Sandbox Code Playgroud)

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

jsz*_*ski 10

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


Mig*_*ego 5

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

#define DEBUGGING NO    //or YES
#define NSLog if(DEBUGGING)NSLog
Run Code Online (Sandbox Code Playgroud)

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

#define NSLog
Run Code Online (Sandbox Code Playgroud)

#define NSLog //
Run Code Online (Sandbox Code Playgroud)

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