Alamofire要求/応答が処理されるコードには、多くの場所があります。再試行でAlamofire要求を行う方法はありますか
これらの要求のそれぞれは、断続的な問題(最も一般的なのはフレークネットワークです)が原因で失敗する可能性があります。
私はリクエストを3回再試行してから救済することができます。
簡単な方法は、その
var errorCount = 0
func requestType1() {
let request = Alamofire.request(...).responseJSON { response in
if (isError(response) && errorCount < 3) {
errorCount += 1
request1()
}
if (isError(response)) {
handleError()
}
handleSuccess()
}
}
のようなものを持つことになりますしかし、私はこのアプローチを複数の理由から、LOTを嫌います。最も明白なのは、各リクエストの種類ごとにそのようなコードを実装する必要があることです(そして、私は15種類あるようです)。
私は(変更が最小限と非侵入している)のようなもの、あなたがこれを使用することができますされスウィフトと取得構文糖のビットの
let request = Alamofire.request(..., **3**)
あなたは終了ブロックとして要求を取るラッパーを作るだろうか?したがって、リクエストを直接呼び出す代わりに、ブロック内に同じリクエストコードがありますが、ラッパーを呼び出します。コードを簡単に変更できます。 – Carlos
カルロス。私はあなたが正しいと思います。私はこれを見落とした:)。あなたは答えとして書きたいですか? –
確かに、少し時間を与えて、私はそれをします – Carlos