2

假设,我正在使用NSURLSessionDownloadTaskor下载一个 300 MB 的文件NSURLSessionDataTask(目前,我不知道在我的情况下哪个是最佳选择)。用户退出应用程序或应用程序在下载 250 MB 时突然崩溃。下次,当用户打开应用程序时,我将不得不从 250 MB 恢复下载。

我已经使用NSURLSessionDownloadTask. 但是,如果我们使用,在下载完成之前NSURLSessionDownloadTask我们无法访问临时文件的 (并且我们会将这个临时文件移动到其永久的最终位置)。NSURLdidFinishDownloadingToURL

我开始知道,我将不得不使用 aNSURLSessionDataTask而不是 a DownloadTask,然后使用委托方法NSURLSessionDataDelegate

- (void)URLSession:(NSURLSession *)session
      dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data;

这将允许我在收到数据时访问它。但是,我不知道我现在将如何管理事情。我想要一种方法,以便我可以在上面的委托中附加数据并将其写入磁盘的某个位置。第二个问题,我怎么知道只能从这里开始下载数据(即从 250 MB 开始)

真的可行吗?还是只有App处于活动状态才可行?

我对这个问题很绝望。

4

0 回答 0