Xcode9向后兼容Swift 3(或3.1)吗?
我刚刚开始使用Xcode9(beta2)。我的理解是,这不会迫使我立即更改代码。但是,我使用的库(Gloss)出现了构建错误: 1) 对于以下代码:Xcode9向后兼容Swift 3(或3.1)吗?,swift,xcode,swift4,xcode9,xcode9-beta,Swift,Xcode,Swift4,Xcode9,Xcode9 Beta,我刚刚开始使用Xcode9(beta2)。我的理解是,这不会迫使我立即更改代码。但是,我使用的库(Gloss)出现了构建错误: 1) 对于以下代码: public func valueForKeyPath(keyPath: String, withDelimiter delimiter: String = GlossKeyPathDelimiter, logger: Logger = GlossLogger()) -> Any? { 我得到: 初始值设定项“init()”是内部的,无法从
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)
}))
}
internal func flatMap(u-transform:(Key,Value)抛出->(KeyPrime,ValuePrime)?)返回->[KeyPrime:ValuePrime]{
返回字典(元素:在
返回try转换(键、值)
}))
}
我得到:
闭包元组参数“(键:\值:\)”不支持
解构
这两种方法都不会导致Xcode 8.3/Swift 3.1出现问题
我正在使用Xcode9,但没有选择更新到Swift 4的选项。似乎有几种可能性:
想法?Xcode 9与Swift 3和4交叉兼容。但是,您需要使用Swift 3.2,这是Xcode 9的最低要求。您可以在Xcode项目的
构建设置中找到特定Xcode支持的语言列表
以下是示例参考,您可以如何查看它:
(对于Xcode 9,它支持Swift 3.2和Swift 4.0)
以下是参考答案,您可以如何轻松地从Swift 3.0切换到4.0
相比之下,Xcode9将无法完全向后兼容Swift 3.1。自AFAIK以来,Swift 3.2推出了Xcode 9。