从 3.0 更新到 SwiftyJSON 4.0 导致旧代码不明确

Posted

技术标签:

【中文标题】从 3.0 更新到 SwiftyJSON 4.0 导致旧代码不明确【英文标题】:Updating to SwiftyJSON 4.0 from 3.0 causing old code to be ambiguous 【发布时间】:2018-02-19 20:36:33 【问题描述】:

由于 SwiftyJSON 3.0 已被弃用,我已将我的 CocoaPods 更新为 SwiftyJSON 4.0。但是,我从旧代码中得到一个错误。

 let path: String = Bundle.main.path(forResource: "jsonFile", ofType: "json") as String!      
 let readableJSON = JSON(data: jsonData! as Data, options: JSONSerialization.ReadingOptions.mutableContainers, error: nil)

它出现了这个错误:

Type of expression is ambiguous without more context

我不确定为什么它现在是模棱两可的以及它所要求的上下文?

【问题讨论】:

【参考方案1】:

SwiftyJSON 4 中的 init(data:options: 初始化器 throws

let url = Bundle.main.url(forResource: "jsonFile", withExtension: "json")!
let jsonData = try! Data(contentsOf: url)
let readableJSON = try! JSON(data: jsonData)

代码不得崩溃。如果是这样,则表明存在设计错误。

.mutableContainers 选项在 Swift 中毫无意义

【讨论】:

以上是关于从 3.0 更新到 SwiftyJSON 4.0 导致旧代码不明确的主要内容,如果未能解决你的问题,请参考以下文章

如何将Powershell版本从3.0升级到4.0或5.0

AlamoFire 4.0 + SwiftyJSON 展开深度嵌套的 JSON

将Wix 3.0迁移到Wix 4.0时出现错误:WXCP0006:此节点前的空格不正确(WhitespacePrecedingNodeWrong)

如何在 Swift 3.0 中使用 SwiftyJSON 将 JSON 数据分配给 UILabel?

检查 iOS 版本是不是与 PHP 兼容,从 iOS 3.0 到 IOS 4.0 或更高版本

Alamofire 的 Swift 扩展方法返回 SwiftyJSON 结果