仅在设置标志时如何将代码包括在构建中?

| 我在我的应用程序中添加了一些调试代码,仅在需要时才调用。我记得有一种“ 0”可用于有条件地将代码包含到源文件中。 例如,我可能有这样的事情:
IFDEF kDebugEnabled == YES {
    // some debugging code here
}
然后,仅当kDebugEnabled为YES时,才将这段代码编译为二进制文件。 我该怎么做? 请注意:我不想使用项目编译器标志设置。我只想定义一个布尔值(或正好达到目的的东西),然后将其设置为true或false,然后例如在我的App Delegate中轻松设置它。我发现很难导航到项目编译器设置,搜索标志然后进行设置。我知道有一个调试标志可能有用。     
已邀请:
        您正在寻找的是:
#ifdef __YOURSYMBOL__
  <conditional code>
#endif
您可以像这样以编程方式定义
__YOURSYMBOL__
 #define __YOURSYMBOL__
__YOURSYMBOL__
可以是对您有意义的任何字符串,以记住您为什么要包含/排除该代码段。
DEBUG
常数是一个特殊的预处理器常数,在构建代码进行调试时,编译器将为您特别定义该常数,因此您可以简单地使用它:
#ifdef DEBUG
         <conditional code>
#endif
考虑到这是您使用的C预处理程序,而不是C,也不是Objective-C,因此根本不可能进行类似于
kDebugEnabled == YES
的测试(其中kDebugEnabled是Objective-C变量)。您可以为常量定义整数值,如下所示:
#define __LOG_LEVEL__ 3
然后测试一下:
#if __LOG_LEVEL__ == 3
    ...
Endif
    
        据我所知,如果不使用编译器标志,您的类中的代码将无法编译成最终产品。但是,使用DEBUG标志比您想象的要容易得多。如果您使用的是Xcode 4,则默认情况下会为其设置。
#ifdef DEBUG

  // Your debug-only code goes here

#endif // DEBUG
默认情况下,Xcode具有两种配置,分别是
Debug
Release
。使用调试构建配置等时,它会设置DEBUG编译器标志,然后您可以使用该标志有条件地编译代码。完全不需要弄乱编译设置。     

要回复问题请先登录注册