2017-07-04 45 views
2

我剛開始使用Xcode9(beta2)。我的理解是,它不會迫使我立即改變我的代碼。但是,我越來越未來與我使用的是庫的構建錯誤(光澤):Xcode9向後兼容Swift 3(或3.1)嗎?

1)對於下面的代碼:

public func valueForKeyPath(keyPath: String, withDelimiter delimiter: String = GlossKeyPathDelimiter, logger: Logger = GlossLogger()) -> Any? { 

我得到:

初始化器爲「init()」是內部和不能從一個 默認參數值

2)就本代碼中引用:

internal func flatMap<KeyPrime : Hashable, ValuePrime>(_ transform: (Key, Value) throws -> (KeyPrime, ValuePrime)?) rethrows -> [KeyPrime : ValuePrime] { 
    return Dictionary<KeyPrime,ValuePrime>(elements: try flatMap({ (key, value) in 
     return try transform(key, value) 
    })) 
} 

我越來越:

閉幕元組參數 '(重點:_,值:__)' 不支持 解構

這兩個導致在Xcode沒問題8.3/Swift 3.1。

我使用Xcode9而不必選擇更新到斯威夫特4.選擇似乎幾種可能性:

  1. 有一些標誌需要被設置爲保留雨燕3.1的向後兼容性
  2. Xcode9被在測試階段,只是還沒有準備好充分
  3. Xcode9不會完全向後兼容斯威夫特3.1

的思考?

+1

比較https://stackoverflow.com/q/44389591/2976878 – Hamish

回答

1

的Xcode 9是橫與夫特3和4兼容然而,你需要上夫特3.2這是最低爲的Xcode 9.

+0

所以,'Xcode9不會完全向後兼容Swift 3.1'看起來就是這樣。自AFAIK以來,Swift 3.2推出了Xcode 9。 –