1

我想测试以下代码行:

#ifdef DEBUG
#define VAR 10
#else
#define VAR 20
#endif

project->build settings->preprocessor macros我有DEBUG=1和记录NSLogging的价值。然后我开始检查它是​​否记录。但它只记录。如何设置 DEBUG 值以满足代码中的条件?VAR10

DEBUG=02010

else

4

3 回答 3

0

让它变得简单:

#define DEBUG 1

#ifdef DEBUG
#define debug(...) NSLog(__VA_ARGS__)
#else
#define debug(...)
#endif

当您登顶应用商店时,请发表评论#define DEBUG 1:D

这是我使用的方式。

我不知道如何定义像你这样的东西,但如果可能的话,那就太好了!

你能告诉我怎么做吗?

于 2013-05-24T09:26:51.197 回答
0

您不应该设置DEBUG=0以获得正确的结果。
只是根本不定义DEBUG以获得释放行为。

请记住,#ifdef DEBUG代码检查是否DEBUG定义
或者,#if DEBUG代码会给你正确的结果。

于 2013-05-24T09:29:22.423 回答
0

正如 Aditya 所说,应用程序中使用的其他库可能已经定义了DEBUG宏,因此即使我从preprocessor macro条件中删除它#ifdef DEBUG也总是得到满足。
解决方案很简单。只需使用不同的宏名称,例如IS_DEBUG代替DEBUG. 这解决了我的问题。这只是一个宏名称的问题。

于 2013-05-28T06:37:50.103 回答