我想测试以下代码行:
#ifdef DEBUG
#define VAR 10
#else
#define VAR 20
#endif
在project->build settings->preprocessor macros
我有DEBUG=1
和记录NSLogging
的价值。然后我开始检查它是否记录。但它只记录。如何设置 DEBUG 值以满足代码中的条件?VAR
10
DEBUG=0
20
10
else
让它变得简单:
#define DEBUG 1
#ifdef DEBUG
#define debug(...) NSLog(__VA_ARGS__)
#else
#define debug(...)
#endif
当您登顶应用商店时,请发表评论#define DEBUG 1
:D
这是我使用的方式。
我不知道如何定义像你这样的东西,但如果可能的话,那就太好了!
你能告诉我怎么做吗?
您不应该设置DEBUG=0
以获得正确的结果。
只是根本不定义DEBUG
以获得释放行为。
请记住,#ifdef DEBUG
代码检查是否DEBUG
已定义。
或者,#if DEBUG
代码会给你正确的结果。
正如 Aditya 所说,应用程序中使用的其他库可能已经定义了DEBUG
宏,因此即使我从preprocessor macro
条件中删除它#ifdef DEBUG
也总是得到满足。
解决方案很简单。只需使用不同的宏名称,例如IS_DEBUG
代替DEBUG
. 这解决了我的问题。这只是一个宏名称的问题。