Iphone 将调试设置为false
我想测试以下代码行:Iphone 将调试设置为false,iphone,ios6,xcode4.6,Iphone,Ios6,Xcode4.6,我想测试以下代码行: #ifdef DEBUG #define VAR 10 #else #define VAR 20 #endif 在project->build settings->preprocessor macros中,我有DEBUG=1和NSLogging记录了VAR的值10然后我设置DEBUG=0来检查它是否记录了20。但是它只记录了10。如何设置调试值,以使中的其他条件得到满足?简单一点: #define DEBUG 1 #ifdef DEBUG #define debug(.
#ifdef DEBUG
#define VAR 10
#else
#define VAR 20
#endif
在project->build settings->preprocessor macros
中,我有DEBUG=1
和NSLogging
记录了VAR
的值10
然后我设置
DEBUG=0
来检查它是否记录了20
。但是它只记录了10
。如何设置调试值,以使
中的其他
条件得到满足?简单一点:
#define DEBUG 1
#ifdef DEBUG
#define debug(...) NSLog(__VA_ARGS__)
#else
#define debug(...)
#endif
当您到达appstore时,注释#define DEBUG 1
:D
这是我过去的方式
我不知道如何定义像你这样的人,但如果可能的话,那就太好了
你能告诉我怎么做吗?你不应该设置
DEBUG=0
来获得正确的结果。只是根本不需要定义
DEBUG
来获得发布行为
请记住,#ifdef DEBUG
代码检查DEBUG
是否定义了。或者,
#如果调试
代码可以得到正确的结果。正如Aditya所说,应用程序中使用的其他库可能定义了调试
宏,因此即使我将其从预处理器宏
中删除,条件#如果调试
总是满足的<不过,解决办法很简单。只需使用不同的宏名称,例如IS_DEBUG
,而不是DEBUG
。这解决了我的问题。这只是一个宏名称的问题。因此删除DEBUG
将对我的代码起作用。这就是你的意思吗?是的。我也改变了答案。DEBUG是一个非常常见的宏。其他一些代码或IDE环境可能已经定义了它。这就是使用公共宏的悲惨现实。此外,如果将#ifdef更改为#if,则代码将正常工作。然后,设置DEBUG=0将不起作用。你能把DEBUG宏的值放在一个int变量中,然后cout/printf它吗?