gpt4 book ai didi

ios - Api 给出错误响应

转载 作者:行者123 更新时间:2023-11-29 05:27:23 24 4
gpt4 key购买 nike

我在下面的代码中使用 Alamofire 编写了一个 API 管理器,它工作得很好。

 func apiGet(url:String,parameters:[String:Any] , completion: @escaping (_ data:[String:Any]? , _ error:Error?) -> Void)
{
if UIApplication.shared.isNetworkActivityIndicatorVisible == true
{
let manager = Alamofire.SessionManager.default
manager.session.configuration.timeoutIntervalForRequest = 120

manager.request(url, method:.get, parameters: parameters, encoding: URLEncoding.default, headers: headersintoApi()).responseJSON { (response:DataResponse<Any>) in
UIApplication.shared.isNetworkActivityIndicatorVisible = false


if response.result.isSuccess
{
if let data = response.result.value as? [String:Any]
{
completion(data , nil)

}else{
Helper.Alertmessage(title: "Alert", message: (response.error?.localizedDescription)!, vc: nil)

completion(nil,response.error)
}
}
else
{
Helper.Alertmessage(title: "Alert", message: (response.error?.localizedDescription)!, vc: nil)
completion(nil,response.error)
print("App error mesage is: \(String(describing: response.result.error))")
}
}

}else{
Helper.Alertmessage(title: "Alert!", message: "Please Check Internet Connection", vc: nil)

}
}

但在某些情况下,API 响应以 [[String:Any]] 的形式出现,因此,它会崩溃。有人对如何修复它有建议吗?

最佳答案

将代码更改为以下内容以处理您在响应中获取字典数组的情况

if let data = response.result.value as? [String:Any]
{
completion(data , nil)

}
else if let data = response.result.value as? [[String:Any]]
{
completion(data , nil)

}
else{
Helper.Alertmessage(title: "Alert", message: (response.error?.localizedDescription)!, vc: nil)

completion(nil,response.error)
}

还保留 Any? 类型的完成参数数据,以便正确处理它。

关于ios - Api 给出错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58027239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com