【问题标题】:Have problem: Value of type 'Result<Any, AFError>' has no member 'value' [duplicate]有问题:'Result<Any, AFError>' 类型的值没有成员'value' [重复]
【发布时间】:2021-04-10 17:41:23
【问题描述】:

试图从结果中获取价值。有人知道如何解决吗?也许其他的一些其他解决方案。

func downloadForecastWeather(completed: @escaping DownloadComplete) {
    Alamofire.request(FORECAST_API_URL).responseJSON { (response) in
        let result = response.result
        if let dictionary = result.value as? Dictionary<String, AnyObject> { // There is an error.
            if let list = dictionary["list"] as? [Dictionary<String, AnyObject>] {
                for item in list {
                    let forecast = ForecastWeather(weatherDict: item)
                    self.forecastArray.append(forecast)
                }
                self.forecastArray.remove(at: 0)
                self.tableView.reloadData()
            }
        }
        completed()
    }
}

}

【问题讨论】:

    标签: json swift alamofire


    【解决方案1】:

    如果你想使用价值,那么在response上调用value 例如:response.value

    所以这将是

    if let dictionary = result.value as? Dictionary<String, AnyObject>
    

    如果你想使用result那么应该是这样的

    let result = response.result
    switch result {
     case .success(let data):
      //Parse data
     case .failure(let afError):
      //Handle error
    }
    

    请参考以下来自 Alamofire 的 Response 截图以供参考:

    【讨论】:

      猜你喜欢
      • 2020-04-18
      • 1970-01-01
      • 2021-06-25
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2018-07-16
      相关资源
      最近更新 更多