4

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

4

4 回答 4

6

使用类似于DLogwrap的宏NSLog,并在发布版本中将其关闭。

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

评论绝对不重要。它们只存在于您的源代码中,而不是编译后的输出。您无需将源代码提交给 Apple,只需将应用程序的构建副本提交给 Apple。

于 2012-04-09T02:15:47.703 回答
2

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

#define NSLog(...)

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

至于评论,它们根本不会进入二进制文件,这些只适用于任何可以看到源代码的人。

于 2012-04-09T03:07:41.500 回答
1

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

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

但这并不重要,根据我的经验,有时您不希望控制台吐出一堆日志,您可能只在某些情况下需要它们。

于 2012-04-09T02:14:30.017 回答
0

这不是已经 NSLog 的行为吗?我以为这就是重点……

于 2012-04-09T16:15:34.153 回答