我对委托方法didFinishDownloadingToURL上的NSURLSession有一个奇怪的问题.
我要做的第一件事是检查临时下载的文件是否存在:
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location
{
if (![[NSFileManager defaultManager] fileExistsAtPath: [location path]])
{
NSLog(@"Error. File not found");
return; // is giving error when the app is wake up by the system
}
...
}
Run Code Online (Sandbox Code Playgroud)
当应用程序处于前台并下载完成时,它可以正常工作.但是当应用程序处于后台并被操作系统强制杀死时,它将返回false.
有没有人知道可能会发生什么?我知道当应用程序被操作系统唤醒时,执行此委托方法有一个时间限制,因为临时文件不在那里是没有意义的.我甚至无法将其复制到另一个位置......是否因为文件的大小而有意义?我正在下载+ -130MB的文件.
谢谢.
我使用本教程在后台下载文件
下载文件时,有2个功能通知我们.我按时间顺序写下它们:
1) - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)downloadURL;
2) - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error;
在功能1中,我检查下载的文件是否仍然存在.
在功能2中,我检查下载的文件是否存在.我认为它被iOS系统删除了.
你能解释一下为什么吗?谢谢