5

在我的记忆中,有一些代码可以让NSLog发布时不起作用。

我不想NSLog在我的代码中删除我的。它对调试模式有很大帮助。

所以我想找到一种可以将它们留在我的代码中的方法,并且在发布时也不会减慢应用程序的速度。

谢谢你的帮助~~

4

2 回答 2

5

删除NSLog(…)版本中所有调用的常用方法是创建一个宏,该宏位于条件预处理器宏之间并编译为空,如下所示:

#ifdef RELEASE
# define NSLog(...) //remove loggin in production
#endif

将此代码放在.h包含在所有其他文件中的文件中,例如前缀标头 ( )Defines.h#include的 'd 。.pch

RELEASE应该是针对目标“构建设置”选项卡中的发布配置定义的预处理器宏。

Apple LLVM 编译器 4.0 - 预处理

相关问题

于 2012-07-24T08:51:55.370 回答
1

您需要将 NSLog 替换为自定义宏。

举个例子

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

在您的前缀 pch 文件中。

ALog 用于无论调试标志的状态如何都需要日志输出的情况,而 DLog 仅用于调试模式下的日志。

资源

于 2012-07-24T08:48:11.520 回答