我刚刚开始使用 Xcode9 (beta2)。我的理解是它不会强迫我立即更改我的代码。但是,我正在使用我正在使用的库(Gloss)出现构建错误:
1)对于以下代码:
public func valueForKeyPath(keyPath: String, withDelimiter delimiter: String = GlossKeyPathDelimiter, logger: Logger = GlossLogger()) -> Any? {
我得到:
Initializer '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)
}))
}
我越来越:
闭包元组参数 '(key: _, value: _)' 不支持解构
这两者都没有对 Xcode 8.3/Swift 3.1 造成任何问题。
我正在使用 Xcode9,但没有选择更新到 Swift 4 的选项。似乎有几种可能性:
- 需要设置一些标志以保持 Swift 3.1 向后兼容性
- Xcode9 处于测试阶段,还没有完全准备好
- Xcode9 不会完全向后兼容 Swift 3.1
想法?