带有无效恢复数据的NSURLSession
我使用[NSURLSessionConfiguration defaultSessionConfiguration]
来configuration我的networking会话。
我通过调用cancelByProducingResumeData:
来暂停任务cancelByProducingResumeData:
产生一个恢复数据,并将其保存到磁盘。 当我想重新启动任务时,我打电话给downloadTaskWithResumeData:
它运行良好,直到我重新启动应用程序。
我暂停任务后,我杀了应用程序。 然后我再次启动我的应用程序,并调用downloadTaskWithResumeData
,我发现恢复数据是无效的。
我parsing恢复数据到NSDictionary,并得到NSURLSessionResumeInfoLocalPath
,这是
"/private/var/mobile/Containers/Data/Application/5DD071C3-9D5E-4D76-9F74-57B6C92445CB/tmp/CFNetworkDownload_IUI6kg.tmp"
。 我尝试访问这个文件,但它不存在。
我的问题是我怎样才能继续使用简历数据下载任务后,我重新启动我的应用程序。
谢谢。
任何时候你重新启动你的应用程序,tmp下的所有东西都会被清理干净,即使我试图复制所有的* .tmp,并且在应用程序重新启动时粘贴回来,也会发生错误
我的build议是,你检查* .tmp文件是否可访问,如果没有,从开始重新下载
我遇到过这个问题。 我发现在iOS8应用程序重新启动后,沙箱path将会改变。 但resumeDatalogging旧的沙箱path,即让下载任务找不到resumeData。 所以我通过键“ NSURLSessionResumeInfoLocalPath ”来更新logging在沙箱中的沙箱path,它工作:
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:resumeDataPath]; NSString *resumeDataFileName = [dic[@"NSURLSessionResumeInfoLocalPath"] lastPathComponent]; NSString *newTempPath = NSTemporaryDirectory(); NSString *newResumeDataPath = [newTempPath stringByAppendingPathComponent:resumeDataFileName]; [dic setValue:newResumeDataPath forKey:@"NSURLSessionResumeInfoLocalPath"]; [dic writeToFile:resumeDataPath atomically:YES];
- iOS – 在inapp购买后从Apple服务器下载
- 如何从URL下载文件并存储在文档文件夹中
- iOS6 – 在从苹果服务器下载的应用程序购买
- asynchronous地同时从几个pffile下载数据
- 如何在iOS下载YouTubevideo
- MonoTouch:如何按照苹果幻灯片“build立报刊应用程序”(Session 504)中的说明逐步下载PDF?
- Swift – 在后台下载NSURLSession?
- BackgroundSession SessionDownloadTasklocking屏幕时,错误:NSPOSIXErrorDomain Code = 1
- iOS – 如何知道NSOperationQueue何时完成一些操作?