2

私のアプリは、次の要件を持つファイルのバッチをダウンロードする必要があります。

  1. バッチはある程度順番に処理する必要があります (ファイルを同時にダウンロードすることを犠牲にしてはいけません)。
  2. アプリが閉じられている場合、ダウンロードはバックグラウンドで続行する必要があります。
  3. ユーザーはいつでも他のダウンロードをトリガーする可能性があります。これらのダウンロードは、バッチよりも優先される必要があります。
  4. ユーザーがバッチ内の任意のファイルのダウンロードをトリガーする可能性があることを考えると、ファイルが既にダウンロードされている場合は、再度ダウンロードするべきではありません。実際のダウンロードを開始する前に、ファイルが既にダウンロードされているかどうかを確認するか、キューから削除する必要があります。

これは、多くの定型コード (ここに投稿するには多すぎる) を使用して実現できます。NSURLSession真新しいiOS 7および/またはAFNetworking 2.0でこれを行う最も簡単な方法は何ですか?

4

1 に答える 1

0

私のショットは次のようになります。

  • 1 つのダウンロードのみを処理する NSOperation サブクラスを作成します。
  • 高優先度キューと低優先度キューの 2 つの NSOperationQueues をセットアップします。キューごとに異なる同時操作を設定することもできます。

ダウンロードごとに、キューの 1 つに操作を追加できます。

ファイルをダウンロードする最も簡単な方法は、AFNetworking や NSURLSession でさえないかもしれませんが、それは要件によって異なります。単純なダウンロードが必要な場合は、次のようなものを使用できます。

NSData *downloadData = [NSData dataWithContentsOfURL:yourURL];
于 2013-11-14T15:23:23.560 に答える