我想在应用中的所有实例中停用NSLog()
。我发现了一些代码:
#ifndef DEBUG
#define NSLog //
#endif
但是将此代码添加到每个文件并不是一个好主意。我怎样才能让它变得更容易?
答案 0 :(得分:10)
Xcode有一个预编译的头文件(默认情况下在Supporting Files组中为{project-name}-Prefix.pch
),这是放置将在项目中的每个文件中使用的代码的好地方。要更进一步并改进日志消息本身,请参阅Is it true that one should not use NSLog() on production code?。
答案 1 :(得分:5)
将以下行添加到常量文件中:
#define DEBUGGING NO //or YES
#define NSLog if(DEBUGGING)NSLog
以下两句话给出相同的结果
#define NSLog
和
#define NSLog //
因为所有以//开头的文本都会在预编译阶段被删除(" //"包含在内)
答案 2 :(得分:2)
我所做的是将它放在预编译的头文件( YourAppName.pch )中:
#define MyLog if(0); else NSLog
然后我将应用程序中的所有NSLog更改为MyLog。它就像是NSLog一样工作。但是当您想要禁用NSLog时,请返回 .pch 文件并将0
更改为1
并将所有日志记录停止。
答案 3 :(得分:2)
这也将处理使用
时出现的警告#define NSLog //
代码:
#ifndef DEBUG
#define NSLog(...)
#endif
答案 4 :(得分:0)
当您不需要NSLOG到常量文件
时,只需添加以下行#define NSLog //
并在需要时对其进行评论。