我创建了一个下载任务。我已使用cancelByProducingResumeData
取消了我的应用程序中的任务并保存到磁盘。当用户重新启动应用程序并单击“恢复”按钮时,我再次通过self.downloadTask = [session downloadTaskWithResumeData:resumableData];
启动了下载任务。但这会给出错误。
Invalid resume data for background download. Background downloads must use http or https and must download to an accessible file
编辑:我已经验证模拟器上的tmp
目录包含downloadData但无法访问该目录。
答案 0 :(得分:0)
重新启动resuminData 中的tmp 文件上的应用程序链接无效。 将resuminData中的字段 - “NSURLSessionResumeInfoLocalPath”更改为tmp文件的正确路径。
使用:
NSMutableDictionary* resumeDictionary = [NSPropertyListSerialization propertyListWithData:resumingData options:NSPropertyListMutableContainers format:NULL error:&error];
...
NSString* badFilePath = [resumeDictionary objectForKey:@"NSURLSessionResumeInfoLocalPath"];
...
[resumeDictionary setObject:trueTmpfile forKey:@"NSURLSessionResumeInfoLocalPath"];
...
NSData* newResumingData = [NSPropertyListSerialization dataFromPropertyList:resumeDictionary format:NSPropertyListXMLFormat_v1_0 errorDescription:&errorDesc];