首页 文章

在Swift中有条件地排除代码

提问于
浏览
7

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

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

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

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

2 回答

  • 14

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

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

    问题是关于在表单中复制 Other Swift Flags 文件中的配置

    -D选项

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

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

相关问题