Xcode if 语句从不识别活动编译条件
Xcode if statement never recognizes Active Compilation Conditions
如您所见,在我的 Active compilation conditions
中,我有 2 个 flags(or whatever it is called)
、A 和 B。
我有 2 个目标,所以第一个目标有标志 A,第二个目标有标志 B...
在代码中,我试图根据选定的应用程序目标定义一个值,但问题是它永远不会进入 #if
块,但总是进入 #else
块。
几个小时以来,我一直在努力解决这个问题,但没有任何帮助。我还尝试将 -D
放入我的标志名称中,并尝试在 Other Swift Flags
中定义 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-based 语言中,以 #
开头的行是预处理器指令。
由于您使用的是 Objective-C,因此要在您的代码中使用 #if
,A
的值应该是 non-zero。如果你只想测试是否定义了 A
,你可以使用 #ifdef
代替。在Apple Clang - Preprocessing
下的Preprocessor Macros
中定义A=1
。
如您所见,在我的 Active compilation conditions
中,我有 2 个 flags(or whatever it is called)
、A 和 B。
我有 2 个目标,所以第一个目标有标志 A,第二个目标有标志 B...
在代码中,我试图根据选定的应用程序目标定义一个值,但问题是它永远不会进入 #if
块,但总是进入 #else
块。
几个小时以来,我一直在努力解决这个问题,但没有任何帮助。我还尝试将 -D
放入我的标志名称中,并尝试在 Other Swift Flags
中定义 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-based 语言中,以 #
开头的行是预处理器指令。
由于您使用的是 Objective-C,因此要在您的代码中使用 #if
,A
的值应该是 non-zero。如果你只想测试是否定义了 A
,你可以使用 #ifdef
代替。在Apple Clang - Preprocessing
下的Preprocessor Macros
中定义A=1
。