Swift 解析JSON时出现错误Alamofire 5

Swift 解析JSON时出现错误Alamofire 5,swift,cocoapods,alamofire,Swift,Cocoapods,Alamofire,我最近刚开始做一个安装了AlamoFire 4.3的旧iOS项目。出于安全原因,我升级到了5。我对Alamofire 5的变化不是特别熟悉。当从JSON解析一个值时,在这个特殊的例子中是一个响应消息,我得到一个类型为'Result'的错误值,我确定我需要提取Result。我真的不知道我会怎么做…而不是环顾四周,最接近的方法是检查类型 ⌥-单击结果。你会看到 然后单击Result转到 结果类型有两个关联类型的案例,一个是成功案例,另一个是错误案例。所以打开result来处理这两种情况 switc

我最近刚开始做一个安装了AlamoFire 4.3的旧iOS项目。出于安全原因,我升级到了5。我对Alamofire 5的变化不是特别熟悉。当从JSON解析一个值时,在这个特殊的例子中是一个响应消息,我得到一个类型为'Result'的错误
值,我确定我需要提取
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)
}