2017-07-20 34 views
0

项目,该项目在Xcode 8.3.2编译正常显示了==的Xcode 9测试版3 - 斯威夫特3.2:比较可选

我发现是用于除去较早的建议各地比较可选/不可选值,许多编译错误coparison <>的一样: https://github.com/apple/swift-evolution/blob/master/proposals/0121-remove-optional-comparison-operators.md

所以现在在Xcode 9,我甚至不能比较两个自选项目:

let xxx: String? = "A" 
    let yyy: String? = "B" 

    if xxx == yyy { //ERROR: Ambiguous use of operator '==' 

    } 

可能有人点我的资源在那里,这将是解释呢? 还是只是一个临时的错误?

感谢

+0

它用迅捷4和迅速建设罚款3.2 –

回答

0

使用的XCode 9测试版(9M136h)和斯威夫特4,你的指令编译。的==!=其接受可选的操作数

变体仍然是有用的,其结果令人吃惊,所以他们仍将

删除接受可选操作数的版本<,< =,>和> =。

因此,您的指令应该可以在Swift 3.2或Swift 4中使用。 检查您在构建设置 - > Swift语言版本中使用的swift版本。

+0

对不起,我的错。对于某些类型的对象,有一个隐藏的扩展覆盖了运算符==。事实是,Xcode 8编译的代码很好,而Xcode 9 Swift 3.2很困惑。 – ds77