1

4 つの異なる URL を使用してオブジェクトにダウンロードNSURLSessionしたいと考えています。私は電話できることを知っています:dataTaskWithURL:completionHandler:NSData

[session dataTaskWithURL completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) {
    // handler
}];

これらがセッションに追加されると、[task resume]. セッションに追加したすべてのタスクを単に開始するようにセッションに指示する方法はありますか?

しかし、それらの 4 つすべてが (エラーまたはその他の理由で) 終了したときに通知を受け取るにはどうすればよいでしょうか? 各タスクの状態を追跡するために、ある種のスレッドセーフな辞書を保持する必要がありますか?

私の目的は、これらがダウンロードされたら、タイマーを開始する必要があるため、将来同じ 4 つの URL を再度ダウンロードできるようにすることです。

4

1 に答える 1

1
  1. いいえ、一度に複数のタスクを開始する方法はありません。

  2. はい、データ タスクをキーとして使用して、応答を格納するための辞書を保持する必要があります。安全のため、すべての変更とアクセスはメインスレッドで実行してください。

この質問で説明されているように、ディスパッチ グループを検討することもできます。

于 2015-12-03T23:02:27.963 に答える