2017-07-20 58 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