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个标志(或它的名称)
,A和B我有两个目标,所以第一个目标有标志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
,这取决于代码的结构和使用的预处理器指令。