gpt4 book ai didi

swift - AlamofireObjectMapper responseObject 方法迁移问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:44:54 26 4
gpt4 key购买 nike

我对 AlamofireObjectMapper 有疑问responseObject方法。这是completionHandlerResponse<T, NSError> -> Void 更改为(旧)到DataResponse<T> -> Void (现在)。也许我不明白,但你能告诉我现在如何通过此更改提供后端错误处理吗?之前,我完成了例如 Response<Object, NSError> .现在我无法同时处理后端错误和成功接收到的数据。还是我应该使用其他方法?

例如,现在我有:Xcode 8、swift 3、更新的框架

class func getAllProducts(successCallBack:((ProductsData?) -> Void), failureCallBack: ((NSError?, ServerResponseStatusCode?) -> Void)?) {

Alamofire.request(URLRouter.Products).responseObject {
(response: DataResponse<ProductsData, NSError>) in

// inside completion block code
}
}

但是当我检查新更新的 AlamofireObjectMapper 时,这个方法的完成现在是 DataResponse<T> 的形式。仅,因此我收到错误“通用类型“DataResponse”专门用于太多类型参数(得到 2 个但预期为 1 个)”

之前:使用 Xcode 7,swift 2.2

class func getAllProducts(successCallBack:((ProductsData?) -> Void), failureCallBack: ((NSError?, ServerResponseStatusCode?) -> Void)?) {

Alamofire.request(URLRouter.Products).responseObject {
(response: Response<ProductsData, NSError>) in

// inside completion block code
}
}

非常感谢。

最佳答案

在使用 Swift 3.0Alamofire 4.0 中,您可能需要在响应闭包内的 switch 语句中处理错误/失败:

Alamofire.request(URLRouter.Products, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil)
.validate()
.responseObject { response in
switch response.result {
case .success:
//print("...HTTP code: \ (response.response?.statusCode)")

case .failure(let error as NSError):
print("Error: \(error)")

default:
print("Unexpected case")
}
}

关于swift - AlamofireObjectMapper responseObject 方法迁移问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660346/

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