2017-07-19 77 views
0

我正在将我的项目从Swift 2.3转换为Swift 3.0。我们正在使用Alamofire pod进行联网。现在我遇到了NSError的问题。Alamofire - 将错误从Swift 2转换为Swift 3

当我们写error: responseObj.result.error时,Swift 3不接受这个。帮我解决这个问题。

检查我的代码:

static func getDataFromAPI(parameters : [String : AnyObject], successCallBack : @escaping APISuccessCallBack, failureCallBack : @escaping APIFailureCallBack) { 

     client.makePOSTRequest(service: Constants.API_BASE_URL, parameters: parameters) { (statusCode, response, error) ->() in 
      if statusCode == MobomoAPIClient.HTTPStatusCode.Success { 
       successCallBack(response) 
      } 
      else { 

       failureCallBack(client.responseErrorMessage(statusCode: statusCode, response: response, error: error)) 
      } 
     } 
    } 


typealias APIClientResponseCallBack = (_ statusCode: Int?, _ response : AnyObject?, _ error : NSError?) ->() 

`self.alamoFireManager!.request(urlString, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: headers) 
      .responseJSON { (responseObj) -> Void in 
       responseCallBack(statusCode: responseObj.response?.statusCode, response: responseObj.result.value as AnyObject, error: responseObj.result.error) 
     }` 

回答

1

你应该改变回调的NSError?Error?和施放failureCallBack的错误Error

typealias APIClientResponseCallBack = (_ statusCode: Int?, _ response : AnyObject?, _ error : Error?) ->() 

failureCallBack(client.responseErrorMessage(statusCode: statusCode, response: response, error: error as Error)) 
+0

在 failureCallBack任何变化(client.responseErrorMessage(的StatusCode:的StatusCode,响应:响应,错误:错误)) ,因为当我们在typealias APIClientResponseCallBack在随后发生改变错误failureCallBack错误:错误 –

+0

无法使用类型为'(statusCode:Int?,响应:AnyObject?“,错误:错误?)的参数列表调用'responseCallBack'' 面临此问题 –