我的App中有类似的内容:
#if PRODUCTION
let code: String? = "1111"
#elseif DEMO
let code: String? = "2222"
#elseif TEST
let code: String? = "3333"
#else
let code: String? = "0000"
#endif
问题在于,在具有标志DEMO
和TEST
的部署目标中,我为第4行和第6行获得Definition conflicts with previous value
。这怎么可能?是#elseif
不应该是排他性的?
更新
虽然很奇怪,但这很有效:
let code: String?
#if PRODUCTION
code = "1111"
#elseif DEMO
code = "2222"
#elseif TEST
code = "3333"
#else
code = "0000"
#endif
我还有一些目标,其中只定义TEST
或PRODUCTION
并且它与前面的代码一起工作,所以我想只有可能被编译的情况才会被解析。
答案 0 :(得分:1)
构建配置声明
构建配置语句正文中的每个语句都是 解析即使它没有被遵守。
我不知道为什么Apple会解析Build Configuration Statement中的每个语句,但是他们这样做了,我认为这会导致问题。