我刚刚更新到Xcode9.3,遇到了一些奇怪的事情。下面的guard语句失败,因为json数据不能像所示那样转换;尽管在Xcode9.3之前它工作得很好(就像在Xcode9.2中一样)
guard let dataRates = json?["data"] as? [String : Float] else {
return
}这个问题似乎与浮动有关;所以,现在我需要使用一个双精度,如下所示:
guard let dataRates = json?["data"] as? [String : Double] else {
return
}这很好,但是为什么现在需要这样做呢?
数据从web上下载并序列化,如下所示:
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:Any]..。示例数据如下所示:
▿ 0 : 2 elements
- key : USDLAK
- value : 8275.999701999999
▿ 1 : 2 elements
- key : USDUZS
- value : 8074.999885
▿ 2 : 2 elements
- key : USDKWD
- value : 0.2998任何洞察力都是值得欣赏的。
我还应该提到我使用的是Swift 3.2。当我试图迁移到Swift 4时,Xcode迁移工具崩溃了。这是我升级到Xcode 9.3的原因之一;希望migrator可以工作!
谢谢!
https://stackoverflow.com/questions/49795185
复制相似问题