NSURLSession didFinishDownloadingToURL找不到临时下载的文件

Gui*_*man 9 objective-c download ios nsurlsession

我对委托方法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的文件.

谢谢.

小智 1

我通过卸载应用程序后安装应用程序解决了同样的问题。当网络会话工作时发生强制关闭时,NSURLSession 似乎会在系统上留下碎片。