Swift 解析JSON时出现错误Alamofire 5
我最近刚开始做一个安装了AlamoFire 4.3的旧iOS项目。出于安全原因,我升级到了5。我对Alamofire 5的变化不是特别熟悉。当从JSON解析一个值时,在这个特殊的例子中是一个响应消息,我得到一个类型为'Result'的错误Swift 解析JSON时出现错误Alamofire 5,swift,cocoapods,alamofire,Swift,Cocoapods,Alamofire,我最近刚开始做一个安装了AlamoFire 4.3的旧iOS项目。出于安全原因,我升级到了5。我对Alamofire 5的变化不是特别熟悉。当从JSON解析一个值时,在这个特殊的例子中是一个响应消息,我得到一个类型为'Result'的错误值,我确定我需要提取Result。我真的不知道我会怎么做…而不是环顾四周,最接近的方法是检查类型 ⌥-单击结果。你会看到 然后单击Result转到 结果类型有两个关联类型的案例,一个是成功案例,另一个是错误案例。所以打开result来处理这两种情况 switc
值,我确定我需要提取Result
。我真的不知道我会怎么做…而不是环顾四周,最接近的方法是检查类型
⌥-单击结果
。你会看到
然后单击Result
转到
结果
类型有两个关联类型的案例,一个是成功
案例,另一个是错误
案例。所以打开result
来处理这两种情况
switch response.result {
case .success(let result): print(result)
case .failure(let error): print(error)
}
在文档网站上,甚至有更多链接指向如何使用结果的示例
另一个有价值的来源是,关于如何使用Alamofire的详细描述
注:
- 不要在Swift中使用
NSDictionary
- 不要使用
值(forKey
),除非您指的是KVC(您不使用)
- 强制将可选文件展开为可选文件(
as!String?
)是没有意义的
您是否考虑过学习如何打开可选值?我没有。但我有兴趣学习。除了@ElTomato建议,您可以使用错误来强制转换或更改AFError?
if let result = response.result.value {
let jsonData = result as! NSDictionary
self.labelMessage.text = jsonData.value(forKey: "message") as! String?
}
switch response.result {
case .success(let result): print(result)
case .failure(let error): print(error)
}