我正在开发一个应用程序来使用 NSURLSession 上传多个文件,现在我的文件已成功上传。但现在我想要实现的是暂停、恢复和取消上传,就像我们在下载任务中所做的那样。可能吗。?任何帮助,将不胜感激。谢谢
2 回答
我研究了很多,但一无所获。在我假设这是一个下载任务在我的代码上尝试了这个之后,我开始知道我们可以使用 NSURLSession 来“暂停,恢复”上传任务,就像我们在下载任务中所做的那样。
要暂停任务,只需调用 [yourUploadTask suspend];
resume 即可[yourUploadTask resume];
取消 [yourUploadTask cancel];
它可能会帮助使用 NSURLSession 处理 uploadTask 的人。
可以尝试使用继承自URLSessionTask的suspend()、resume()方法,但是resume()会导致上传失败。您可以通过自动重试上传错误(即除 400 秒以外的任何非永久性错误)在上传类中解决此问题,但这意味着从头开始重新启动每个挂起的上传并丢失已上传的数据。
URLSessionUploadTask 没有像 URLSessionDownloadTask 那样的 cancel(byProducingResumeData completionHandler: @escaping (Data?) -> Void),因此没有保存状态数据来恢复和继续上传。要实现一个需要滚动我们自己的,我还没有做过,但我相信需要特定的服务器支持来实现,以及较低级别的网络 API 的用户。