NSURLSessionDownloadTask
orを使用して 300 MB のファイルをダウンロードしているとしますNSURLSessionDataTask
(現時点では、私の場合はどれが最適な選択かわかりません)。ユーザーがアプリを終了するか、250 MB のダウンロード中にアプリが突然クラッシュしました。次回、ユーザーがアプリを開いたときに、250 MB からダウンロードを再開する必要があります。
を使用してデモを作成しましたNSURLSessionDownloadTask
。ただし、 を使用している場合は、ダウンロードが完了するまで一時ファイルにNSURLSessionDownloadTask
アクセスできません(この一時ファイルを永続的な最終的な場所に移動します)。NSURL
didFinishDownloadingToURL
私は、NSURLSessionDataTask
ではなく を使用しDownloadTask
、次にデリゲート メソッドを使用する必要があることを知りましたNSURLSessionDataDelegate
。
- (void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data;
これにより、受信したデータにアクセスできるようになります。しかし、これからどうやって物事を管理するのかわかりません。上記のデリゲートにデータを追加し、ディスクのどこかに書き込むことができるようにする方法が必要です。2 番目の質問です。データのダウンロードがここからのみ (つまり 250 MB から) 開始されることをどのように知ることができますか?
それは本当に実現可能ですか?または、アプリがアクティブな状態の場合にのみ実行可能ですか?
私はこの質問に必死です。