提问者:小点点

Swift中代码的条件排除


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

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

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

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


共2个答案

匿名用户

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

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

匿名用户

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

-d选项

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

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