我在 NSURLSession 的委托(delegate)方法 didFinishDownloadingToURL 上遇到了一个奇怪的问题。
我要做的第一件事是检查临时下载的文件是否存在:
- (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
}
...
}
当应用程序在前台并下载完成时,它可以正常工作。但是当应用程序处于后台并被操作系统强行杀死时,它返回false。
有人知道会发生什么吗?我知道当应用程序被操作系统唤醒时,这个委托(delegate)方法的执行是有时间限制的,临时文件不存在是没有意义的。我什至无法将其复制到其他位置... 因为文件的大小有意义吗?我正在下载 +-130MB 的文件。
谢谢。
最佳答案
我通过卸载应用程序后安装应用程序解决了同样的问题。似乎 NSURLSession 在网络 session 工作时发生强制关闭时会在系统上留下碎片。
关于ios - NSURLSession didFinishDownloadingToURL 找不到临时下载的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860112/