Swift 编译器标志不会影响 Objective-C 代码



Active Compilation Conditions下,我添加了一个名为SOMEFLAG的新标志(仅用于调试(。 检查是这样实现的,效果很好:

#if SOMEFLAG
print("SOMEFLAG is true");
#endif

它实际上打印得像我期望的那样。 现在,我需要检查类中的同一标志Objective-C并且它永远不会计算为 true。 知道为什么吗? 我应该以其他方式制作此标志吗? 通常,我的目标是能够检测何时从另一个目标执行,构建是从cli触发的。 如果还有其他方法可以减少限制,我想知道。

谢谢!

在 Objective-C(以及其他使用预处理器的类 C 语言(中,检查符号是否定义的规范方法是使用#ifdef而不是#if。在 Objective-C 中有一个#if指令,但它的行为方式与 Swift#if编译器指令并不完全相同。

最新更新