Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将调试设置为false_Iphone_Ios6_Xcode4.6 - Fatal编程技术网

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它吗?