2016-09-23 21 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