我剛開始使用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.選擇似乎幾種可能性:
- 有一些標誌需要被設置爲保留雨燕3.1的向後兼容性
- Xcode9被在測試階段,只是還沒有準備好充分
- Xcode9不會完全向後兼容斯威夫特3.1
的思考?
比較https://stackoverflow.com/q/44389591/2976878 – Hamish