我正在尝试为我的应用编写API管理器,并希望将任何响应错误返回给我的调用函数。我应该在这里测试错误并将其作为完成处理程序中的第三个变量返回,还是可以从HTTPURLResponse获取它?有没有更好的方法呢?
我有以下代码
func myQuery(router: myRouter, completionHandler: @escaping (HTTPURLResponse?, [String: Any]?) -> ()) {
Alamofire.request(router)
.responseJSON { response in
if response.result.error != nil {
}
else {
// ... save auth token
completionHandler(response.response, response.result.value as? [String: Any])
}
如果处理此问题的最佳方法是返回错误,那么此代码是否正确?
func myQuery(router: myRouter, completionHandler: @escaping (String?, HTTPURLResponse?, [String: Any]?) -> ()) {
Alamofire.request(router)
.responseJSON { response in
if response.result.error != nil {
completionHandler(response.result.error as? String, response.response, response.result.value as? [String: Any])
}
else {
completionHandler(nil, response.response, response.result.value as? [String: Any])
}
要添加更多上下文,我试图在调用函数
时替换类似于此代码Alamofire.request((url),
method: .get,
parameters: nil,
encoding: URLEncoding.default,
headers: ["Authorization" : requestHeader, "APi-Key" : token])
.responseJSON { response -> Void in
if response.result.error != nil {
// Handle Error
completionHandler(nil, response.result.error as NSError?)
}