使用NSURLSession UploadTask暂停,恢复,取消上传任务

时间:2015-01-07 06:40:14

标签: ios objective-c ios7 nsurlsession nsurlsessionuploadtask

我正在开发一个使用NSURLSession上传多个文件的应用程序,现在我的文件已成功上传。但现在我想要实现的是暂停,恢复和取消上传,就像我们在下载任务中一样。可能吗。?任何帮助,将不胜感激。日Thnx

2 个答案:

答案 0 :(得分:5)

我已经研究了很多但却找不到任何东西。我在我的代码上尝试这个假设这是一个下载任务后,我开始知道我们可以“暂停,恢复”上传任务以及使用NSURLSession我们只是在下载任务时

要暂停任务,只需致电[yourUploadTask suspend]; 恢复[yourUploadTask resume]; 取消[yourUploadTask cancel];

它可能会帮助使用NSURLSession处理uploadTask的人。

答案 1 :(得分:0)

您可以尝试使用从URLSessionTask继承的suspend(),resume()方法,但resume()将导致上传失败。您可以通过自动重试上传错误(即400s以外的任何非永久性错误)在上传类中解决此问题,但这意味着从头开始重新启动每个待处理的上传并丢失已上传的数据。

对于URLSessionUploadTask,没有取消(byProducingResumeData completionHandler:@escaping(Data?) - > Void),就像URLSessionDownloadTask一样,因此没有状态数据保存以便恢复并继续上传。要实现一个需要自己滚动,我尚未完成,但我认为需要特定的服务器支持来实现,以及低级网络API的用户。