从版本的iPhone应用程序中排除NSLog

时间:2012-04-09 02:10:19

标签: iphone objective-c ios xcode

有人可以查看如何从应用程序的发布版本中免除NSLog吗?此外,如果评论留在发布版本中,这是否重要?谢谢!

4 个答案:

答案 0 :(得分:6)

Use a macro like DLog to wrap NSLog, and turn it off in Release builds.

#ifdef DEBUG
#    define DLog(...) NSLog(__VA_ARGS__)
#else
#    define DLog(...) /* */
#endif

评论绝对没关系。它们只在源代码中,而不是编译输出。您不会将您的源代码提交给Apple,只会提交您应用的内置副本。

答案 1 :(得分:2)

我要排除NSLogs的做法是将其添加到前缀文件中:

#define NSLog(...)

这样,编译时,所有NSLog都将被替换为空,它就像一个空行。

至于评论,它们根本不会进入二进制文件,只有那些只能看到源代码的人。

答案 2 :(得分:1)

在构建调试版本时,较新版本的Xcode项目通常包含宏定义DEBUG,因此最简单的方法是:

#ifdef DEBUG
NSLog(@"Safe and sound ...");
#endif

但这并不重要,根据我的经验,有时你不希望控制台呕吐一堆日志,你可能只在某些场合需要它们。

答案 3 :(得分:0)

这不是NSRE的行为吗?我认为这就是重点......