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