【发布时间】:2016-09-23 12:04:19
【问题描述】:
AlamofireObjectMapper responseObject 方法有问题。它的 completionHandler 从 Response<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
}
}
非常感谢。
【问题讨论】:
-
您可以按原样发布您的代码吗?
-
是的,当然,我已经用更多细节编辑了这个问题。谢谢。