私は、次の手順でシナリオを実行する必要があります。この完全なシナリオで操作キューを使用する必要がありますか?
- そのJSONレスポンスを解析し、モデルエンティティ
- を作成するために、そして、ユーザー
- が提供するいくつかの検索パラメータを使用してネットワーク呼び出しを行うにはその後作成されたエンティティごとに、関連付けられたイメージURLがある場合は、そのようなイメージをダウンロードするための対応するサービスを呼び出して、ダウンロードが完了したら
UICollectionView
に表示することができます。
私が必要とするN個の画像をダウンロードするときに、同時にネットワークコールを処理する必要があります。ユーザーは、現在の検索フローをキャンセルして新しい検索フローを開始する可能性があります。また、特定のイメージのセルがまだ表示されていないか、またはデキューされていることを考慮する必要があります。だから、私の質問です:これは最高のアプローチですか?
- は、第1のネットワーク・コール(NO並行性)と直接
URLSession
とURLSessionDownloadTask
を使用して、それ以降の処理のためにOperation
とOperationQueue
を用いて解析JSON応答を実行します。ユーザーが現在の検索をキャンセルしたい場合は、URLSession
の場合はinvalidateAndCancel()
を、の場合はcancelAllOperations()
の両方を使用してください。 Operation
とOperationQueue
を使用して完全な処理を実行します。- 他の適切な方法はありますか?
..細胞内の画像の非同期を表示するSDWebImageのようなものを使用NSOperationQueue(この場合の主な利点は私が考えることができるのは依存性と優先度です)を使用してそれらの間で優先順位を付けても、私は信じられない価値があります。 NSURLSessionの複数のデータタスクを開始することができ、後でURLSessionでinvalidateAndCancelを呼び出すことは理にかなっています。しかし、画像をダウンロードしてCollectionViewで表示するには、SDWebImageを使用することをお勧めします。それは広範囲にキャッシュし、画像をダウンロードし、独自のUIを更新します。collectionView/tableViewの画像を効率的に表示します。D –