2016-09-23 42 views
3

我有一个AlamofireObjectMapperresponseObject方法的问题。它的completionHandlerResponse<T, NSError> -> Void(旧)改为DataResponse<T> -> Void(现在)。也许我不明白,但是你能否告诉我如何通过这种改变提供后端错误处理?之前,我已完成例如Response<Object, NSError>。现在我无法处理后端错误和成功接收数据。或者我应该使用其他方法?AlamofireObjectMapper responseObject方法迁移问题

比如我现在有:Xcode中8,快捷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 
     } 
    } 

非常感谢。

+0

难道您发布的代码,是什么? – pedrouan

+0

当然,我已经编辑了更多细节的问题。谢谢。 –

回答

2

Alamofire 4.0使用雨燕3.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") 
    } 
} 
+0

这样做,但不幸的是,现在我得到一个错误,说:“不明确的引用成员'请求(_:方法:参数:编码:标题:)'” –

+0

我已经重写了请求。 – pedrouan