Ios Xcode if语句从不识别活动编译条件

Ios Xcode if语句从不识别活动编译条件,ios,objective-c,swift,target,compiler-flags,Ios,Objective C,Swift,Target,Compiler Flags,正如您所看到的,在我的活动编译条件中有2个标志(或它的名称),A和B 我有两个目标,所以第一个目标有标志A,第二个目标有标志B。。。 在代码中,我试图根据选定的应用程序目标定义一个值,但问题是它从未进入\if块,而是始终进入\else块。 我已经试着解决这个问题好几个小时了,但什么都帮不了我。我还尝试将-D放在我的旗帜名称中,尝试在其他Swift旗帜中定义A和B。。。 什么都没用 这是我的简单代码: #if A #define kId @"a1a2a3" //ne

正如您所看到的,在我的
活动编译条件中
有2个
标志(或它的名称)
AB
我有两个目标,所以第一个目标有标志A,第二个目标有标志B。。。
在代码中,我试图根据选定的应用程序目标定义一个值,但问题是它从未进入
\if
块,而是始终进入
\else
块。
我已经试着解决这个问题好几个小时了,但什么都帮不了我。我还尝试将
-D
放在我的旗帜名称中,尝试在
其他Swift旗帜中定义
A
B
。。。 什么都没用

这是我的简单代码:

#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

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

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


由于您使用的是Objective-C,因此要在代码中使用
#如果
,则
A
的值应为非零。如果只想测试是否定义了
A
,可以使用
#ifdef
。在
Apple-Clang-Preprocessing

下的
Preprocessor宏中定义
A=1
?你试过在我上面的代码中设置A=1吗。A=1?在哪里?如果你在Objective-C部分写了简单的代码,那么用你在那里写的方法写
A=1
。好的@Larme,我应该为
B
写点什么吗,也许
=2
?我不太理解你。我已经编辑了我的问题,并将图片附在底部,您可以看到我的
苹果叮当声-预处理。请检查它。我假设您想要为调试和发布目标设置条件。双击
预处理器宏中的调试值(
Debug=1 COCOAPODS=1
),单击工作表中的
+
添加新值,然后键入
a=1
。然后对发布配置执行同样的操作。好的@sbooth,我是否应该为
B
,可能是
=2
,这取决于代码的结构和使用的预处理器指令。