首页 > 解决方案 > Xcode if 语句从不识别活动编译条件

问题描述

在此处输入图像描述

在此处输入图像描述

如您所见,在我的Active compilation conditionsI 中有 2 flags(or whatever it is called)AB
我有 2 个目标,所以第一个目标有标志 A,第二个目标有标志 B...
在代码中,我试图根据选定的应用程序目标定义一个值,但问题是它永远不会进入#if块,但总是#else块 。
我一直试图解决这个问题几个小时,但没有任何帮助。我还尝试-D输入我的标志名称,也尝试定义Aand Bin Other Swift Flags... 没有任何效果。

这是我的简单代码:

#if A
    #define kId @"a1a2a3" //never executed.
#else
    #define kId @"b1b2b3" //always executed. Weird thing is also that I put a breakpoint here but its never catched...
#endif

Apple Clang - 预处理

标签: iosobjective-cswifttargetcompiler-flags

解决方案


主动编译条件适用于 Swift,类似于 Objective-C/C/C++ 中的预处理器宏。

#在基于 C 的语言中,以预处理器指令开头的行。

由于您使用的是 Objective-C,因此要#if在代码中使用 的值A应该是非零的。如果您只想测试是否A已定义,则可以#ifdef改用。在下定义。A=1_Preprocessor MacrosApple Clang - Preprocessing


推荐阅读