Swift版本构建配置

时间:2018-07-12 14:14:44

标签: swift

在Swift v4.2中,他们引入了扩展名Bool.toggle(),从早些时候开始我就有了这个扩展名,现在我用Xcode10编译时,它说Ambiguous use of 'toggle()'。如果Swift版本为4.2或更高版本,我试图使其忽略自己的扩展名,因此我使用了构建配置swift(>=),该配置应检查当前的Swift版本是否等于或高于指定的版本。

public extension Bool {

    #if swift(>=4.2)
    // DO NOTHING
    #else
    mutating func toggle() {
        self = !self
    }
    #endif
}

在Xcode10和Xcode9上,它应该只看到注释“不要”,它应该看到扩展方法。但是发生的是,当在Xcode10上它仍然看到该方法并且我仍然收到错误“歧义使用”时,在Xcode9上它也看到了该方法。我也将构建设置Swift Language Version更改为Swift 4.2,但编译器仍然可以看到该方法。

0 个答案:

没有答案