假设,我正在使用NSURLSessionDownloadTask
or下载一个 300 MB 的文件NSURLSessionDataTask
(目前,我不知道在我的情况下哪个是最佳选择)。用户退出应用程序或应用程序在下载 250 MB 时突然崩溃。下次,当用户打开应用程序时,我将不得不从 250 MB 恢复下载。
我已经使用NSURLSessionDownloadTask
. 但是,如果我们使用,在下载完成之前NSURLSessionDownloadTask
我们无法访问临时文件的 (并且我们会将这个临时文件移动到其永久的最终位置)。NSURL
didFinishDownloadingToURL
我开始知道,我将不得不使用 aNSURLSessionDataTask
而不是 a DownloadTask
,然后使用委托方法NSURLSessionDataDelegate
:
- (void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data;
这将允许我在收到数据时访问它。但是,我不知道我现在将如何管理事情。我想要一种方法,以便我可以在上面的委托中附加数据并将其写入磁盘的某个位置。第二个问题,我怎么知道只能从这里开始下载数据(即从 250 MB 开始)
真的可行吗?还是只有App处于活动状态才可行?
我对这个问题很绝望。