我正在尝试为特定目标排除Swift文件的某些部分。然而,我没有找到#ifndef objective-c指令的替代品,而且如果我使用的那种形式:
#if taxi_coops
func pippo(){
println("pippo");
}
#else
func triggerActiveLocationUpdate(entering:Bool){}
#endif
预处理器完全忽略该指令并尝试编译triggerActiveLocationUpdate。请注意 #if taxi_coops 指令在同一文件的其他部分中受到尊重。
有没有办法简单地在Swift中排除一些代码和/或为什么我的修复不起作用?
答案 0 :(得分:15)
在Swift中,使用#if !
代替#ifndef
,例如:
#if !os(OSX)
// compiled when not on OS X
#endif
答案 1 :(得分:9)
问题在于以
形式复制其他Swift Flags 文件中的配置-D选项
显然Swift忽略预处理器字段中的标志。现在它接受||,&&而且!没有任何语法问题:
#if option || !option2
......
#elseif option3
......
#endif