如何禁用NSLog遍布应用程序?
我想在应用程序的所有实例中禁用NSLog()
。 我发现一些代码,这样做:
#ifndef DEBUG #define NSLog // #endif
但是,将这些代码添加到每个文件是不好的主意。 我怎样才能让它更容易?
Xcode在默认情况下在支持文件组中有一个预编译的头文件( {project-name}-Prefix.pch
),这是放置项目中每个文件都要使用的代码的好地方。 为了更进一步并改进日志消息本身,请参阅是否应该在生产代码上使用NSLog()? 。
将以下行添加到常量文件中:
#define DEBUGGING NO //or YES #define NSLog if(DEBUGGING)NSLog
下面的两句话给出了相同的结果
#define NSLog
和
#define NSLog //
因为所有以//开头的文本在预编译阶段(包括“//”)被删除,
我所做的是把它放在预编译头文件( YourAppName.pch )中:
#define MyLog if(0); else NSLog
然后,我将所有的NSLog更改为MyLog在应用程序的其他地方。 它的工作就像是NSLog。 但是当你想禁用NSLog时,回到.pch文件,将0
改为1
并停止。
这也将照顾使用时出现的警告
#define NSLog //
代码:
#ifndef DEBUG #define NSLog(...) #endif
当你不需要NSLOG到你的常量文件时,只需添加以下几行
#define NSLog //
并在需要时给予评论。