13

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

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

预处理器完全忽略该指令并尝试编译 triggerActiveLocationUpdate。请注意,#if tax_coops指令在同一文件的其他部分受到尊重。

有什么方法可以简单地排除 Swift 中的一些代码和/或为什么我的修复不起作用?

4

2 回答 2

20

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

#if !os(OSX)
    // compiled when not on OS X
#endif
于 2016-10-14T22:35:56.880 回答
13

问题是关于在表单中复制其他 Swift 标志文件中的配置

-D 选项

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

#if option || !option2
......
#elseif option3
......
#endif
于 2015-07-16T13:20:14.733 回答