有条件地排除 Swift 中的代码

Conditional exclusion of code in Swift

我正在尝试为特定目标排除 Swift 文件的某些部分。然而,我没有找到 #ifndef objective-c 指令的任何替代品,而且如果我使用这种形式:

#if taxi_coops
func pippo(){
    println("pippo");
}
#else
func triggerActiveLocationUpdate(entering:Bool){}
#endif

预处理器完全忽略指令并尝试编译 triggerActiveLocationUpdate。请注意 #if taxi_coops 指令在同一文件的其他部分得到遵守。

有什么方法可以简单地排除 Swift 中的某些代码片段 and/or 为什么我的修复不起作用?

问题是关于以

形式复制 Other Swift Flags 文件中的配置

-D option

显然 Swift 忽略了预处理器字段中的标志。现在它接受 ||、&& 和 !语法没有任何问题:

#if option || !option2
......
#elseif option3
......
#endif

在Swift中,用#if !代替#ifndef,例如:

#if !os(OSX)
    // compiled when not on OS X
#endif