2017-12-13 4 views
0

私はEVReflectionでAlamofireを使用していますが、レスポンスオブジェクトが未処理の応答文字列をオブジェクトに解析できない場合、response.errorにはある値があり、別のエラーの場合は別の値になりますセット。エラーオブジェクトの返信をalamofireで

異なるエラーを処理するために、これらのエラー値を比較する方法がわかりません。

JSONパースエラーの場合は、印刷(エラー)が出力さ

FAILURE: Error Domain=com.alamofirejsontoobjects.error Code=1 "Data could not be serialized. Input data was not json." UserInfo={NSLocalizedFailureReason=Data could not be serialized. Input data was not json.}

Alamofire.request(...)   
      .responseObject { (response: DataResponse<UserData>) in 
       guard response.error == nil else { 
        print(response.error) 
        return 
       } 
      } 

答えて

1

あなたの要求が失敗したとき、あなたはAlamofireからタイプAFErrorのエラーが発生します。実際にはAFError.swiftファイルをチェックして、可能な値に慣れることができます。このファイルは、すべてのケースで本当に良いドキュメントを持っています。

AFErrorの型が列挙型であるエラーであるため、次のように確認することができます。

switch err { 
case .parameterEncodingFailed(let reason): 
    // do something with this. 
    // If you want to know more - check for reason's cases like 
    // switch reason { 
    // case .jsonEncodingFailed(let error): 
    //  … // handle somehow 
    // case .propertyListEncodingFailed(let error): 
    //  … // handle somehow 
    // }  
case .responseValidationFailed(let reason): 
    // do something else with this 
… 
} 

、すべてreasonのために、あなたは、いくつかのヘルパー関数を持っているので、あなたも、より多くの情報を得ることができます。ただドキュメントをチェックしてください。

関連する問題