2017-07-19 5 views
0

私のプロジェクトをSwift 2.3からSwift 3.0に変換しています。私たちはネットワーキングのためにAlamofireポッドを使用しています。今私は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?へとErrorにfailureCallBackのエラーをキャスト:

は私のコードを確認してください。

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?、エラー:Error?)の引数リストで' responseCallBack 'を呼び出せません。 この問題に直面しています –

関連する問題