2

でファイルのリストを連続してダウンロードするベスト プラクティスは何NSURLSessionDownloadTaskですか?

たとえばNSURLSession、前回のダウンロードが完了してから新しいものを開始するのが最善でしょうか?

- (void)startDownloadWithRequest:(NSURLRequest *)request{

    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

    NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithRequest:request];
    [downloadTask resume];

}

次に、完了時にデリゲート-startDownloadで、別の要求で再度呼び出します。

- (void)URLSession:(NSURLSession *)session
      downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location{

    NSURL *url = [NSURL URLWithString:@"http://asdf.com/Hello_world.pdf"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [self startDownload:request];

}

ダウンロードを連鎖させるこの方法で-startDownloadWithRequestは、前のダウンロードの完了時に in への呼び出しが発生して以来、後続の各リクエストでスタックが大きくなりますか?

SO や他の Web サイトを検索しましたが、NSURLSessionDownloadTask.

4

1 に答える 1

1

実行するタスクが構成に関して同じルール (タイムアウト、Cookie、キャッシュ ポリシーなど) の下にある場合、新しいセッション (および構成) オブジェクトを作成する必要はまったくありません。

それどころか、それは逆効果です。まったく同じことを行う新しいオブジェクトをなぜ割り当てるのでしょうか? 構成がより厳格なポリシーを課していない場合は、NSUrlRequest を介してセッションの構成の特定のポリシーをオーバーライドすることもできます。

ファイルを連続してダウンロードするためのベスト プラクティスに関しては、セットアップはしっかりしているように見えます。

于 2015-02-02T01:30:28.377 に答える