Swift:多目标处理:宏无法工作

4

来自参考资料 如何使用Swift语言在XCode中处理多个目标?https://www.appcoda.com/using-xcode-targets/

我创建了三个目标,每个目标都有不同的bundle id和应用程序图标。我还在“其他Swift标志”->自定义Swift标志部分添加了不同的标志。

例如

对于第一个目标,我添加了"-DGOLD", 对于第二个目标,我添加了"-DSILVER",对于第三个目标,我添加了"-DPLATINUM"

在AppDelegate中,我编写了一段代码

#if GOLD
print ("Gold")
#elseif SILVER
print ("Silver")
#else
print ("Platinum")
#endif

提供信息,我正在使用Xcode 8.3

我尝试运行第一个目标,但总是得到“铂金”错误。请告诉我如何正确获取标志。


你是在寻找 #ifdef 吗? - Larme
@Larme '#ifdef' 是 Objective-C 的语法,我猜是这样。 - Sridhar
我非常确定你需要在代码块后面加上 #endif,但我不确定它是否相关。 - Arc676
请参考此帖子 - Arc676
1个回答

2
我正在使用 Xcode 9. 我也遇到了同样的问题,花费了几个小时寻找答案,最终找到了解决方法。 在每个目标下的“构建设置 -> 其他 Swift 标志”中,我添加了所需的标志,如下所示:

目标1 -> -DTARGET1

目标2 -> -DTARGET2

然后在我的代码中使用了它们:
#if TARGET1
//
#elseif TARGET2
//
#endif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接