预处理器宏无法按预期工作

Preprocessor Macro not able to work as expected

我在 Main 目标上定义了 "Preprocessor Macro" FREEVERSION=0,在 Lite 目标上定义了 FREEVERSION=1。

然后在 AppDelegate

#ifdef FREEVERSION
@import GoogleMobileAds;
#endif

当我为 Lite 目标构建时,它运行正常。但是当我为主要目标构建时,它说导入时出错。我希望编译器在 select Main 目标时忽略这些。但是 no.Why?

我想我是在回答我自己的问题。 #ifdef 检查宏是否存在。但不是价值。在这种情况下,两个目标都定义了 FREEVERSION,因此两者的计算结果都为真。要修复它,只需完全删除 Main 目标中的条目 FREEVERSION=0。价值并不重要。