我想测试以下代码行:
#ifdef DEBUG
#define VAR 10
#else
#define VAR 20
#endif
在project->build settings->preprocessor macros
我DEBUG=1
和NSLogging
VAR
已记录10
的值。
然后我设置{{ 1}}检查它是否记录DEBUG=0
。但它仅记录20
。
如何设置DEBUG值以便满足代码中的10
条件?
答案 0 :(得分:0)
让事情变得简单:
#define DEBUG 1
#ifdef DEBUG
#define debug(...) NSLog(__VA_ARGS__)
#else
#define debug(...)
#endif
当您登陆appstore时,请评论#define DEBUG 1
:D
这是我使用的方式。
我不知道如何定义像你这样的东西,但如果可能的话,它会很棒!
你能告诉我怎么做吗?
答案 1 :(得分:0)
您不应该设置DEBUG=0
才能获得正确的结果
只是不要定义DEBUG
来获得释放行为。
请记住,#ifdef DEBUG
代码会检查DEBUG
是否已定义。
或者,#if DEBUG
代码可以为您提供正确的结果。
答案 2 :(得分:0)
正如Aditya所说,应用程序中使用的其他库可能已定义DEBUG
宏,因此即使我将其从preprocessor macro
中删除,条件#ifdef DEBUG
也始终满足。
解决方案很简单。只需使用不同的宏名称,例如IS_DEBUG
而不是DEBUG
。这解决了我的问题。这只是一个宏观名称的问题。