首页 > 解决方案 > 预处理器宏无法按预期工作

问题描述

我在主要目标上定义了“预处理器宏”FREEVERSION=0,在 Lite 目标上定义了 FREEVERSION=1。

然后在 AppDelegate

#ifdef FREEVERSION
@import GoogleMobileAds;
#endif

当我为 Lite 目标构建时,它运行正常。但是当我为主要目标构建时,它在导入时显示错误。当我选择主要目标时,我希望编译器会忽略这些。但是没有。为什么?

标签: xcodetargetconditional-compilation

解决方案


猜猜我正在回答我自己的问题。 #ifdef检查宏是否存在。但不是价值。在这种情况下,两个目标都定义了 FREEVERSION,因此对两者都评估为真。要修复它,只需完全删除 Main 目标中的条目 FREEVERSION=0 即可。而且价值无关紧要。


推荐阅读