問題タブ [decodable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - キャッチ パターンの変更のコールバック シグネチャ
JSONDecoder
Alamofire を使用して、サーバーからの json 応答をデコードしようとしています。で応答をデコードすると、guard
問題なく動作します。このアプローチの副作用は、デコードが実際に失敗したときに何が問題なのかがわからないことです。
したがって、代わりに a を使用したいのですdo { } catch { }
が、 AlamofireresponseJSON
コールバック内でどのように使用する必要があるのか わかりません。
これは私が現在持っているものです:
ただし、このコードで得られるのは、.responseJSON { (response) -> Void in
行のコンパイラ エラーです。
タイプ '(_) -> Void' のスロー関数から非スロー関数タイプ '(DataResponse) -> Void' への無効な変換。
ガード コードは正常に動作し、a に変更try
するtry?
かアンラップを強制すると、コンパイルされます。実際のエラーを catch で処理することはできません。
catch
パターンを含まないようにブロックを変更すると、コードはコンパイルされます。
これは、私が私に与えていたもの以上に何もguard
与えません。操作で発生したエラーをキャプチャしたいのですdecode
。間違ったパターンを使用していますか? DecodingError.dataCorrupted
パターンを使用するとコールバック シグネチャが変わるように見えるのはなぜですか?