2

我建立了一个应用程序,一年多前,它为用户提供照片共享和视频共享。直到几个星期前,我推出了一项新功能:没有任何问题的情况下运行:只有当WiFi可用时才标记视频上传的可能性:视频设置为使用带NSURLSessionConfiguration的NSURLSession,其中allowedCellular设置为NO 。在WiFi上传时出现NSURLSession错误:NSURLErrorDomain代码= -999

大多数时间它工作正常:

  • 我设置视频是在WiFi的份额,而我通过3G/4G连接
  • 一旦我连接到WiFi网络的视频上传没有问题

但是,有些用户在连接到WiFi后没有上传视频。我从他们的一些日志,每当您连接到无线网络,出于某种原因NSURLSession使委托调用我可以看到一个错误:

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error 

,出现以下错误:

Error: Error Domain=NSURLErrorDomain Code=-999 "(null)" UserInfo={NSErrorFailingURLStringKey=https://my-videos-bucket.s3.amazonaws.com/4074196678138134606/F17F7308-2810-4325-A5AF-BB8FFC093AC6.mov, NSURLErrorBackgroundTaskCancelledReasonKey=0, NSErrorFailingURLKey=https://my-videos-bucket.s3.amazonaws.com/4074196678138134606/F17F7308-2810-4325-A5AF-BB8FFC093AC6.mov} 

任何想法?它可能是服务器的问题吗?奇怪的是,我不能重现它,也不明白失败的原因

在此先感谢!通常,当您的应用程序取消发生

+0

似乎任务被另一个任务取消。 -999用于NSURLErrorCancelled。 –

+0

把你的iPhone带到星巴克,看看你是否能重现这个问题。用户可能会遇到强制网络。 – gnasher729

回答

0

一个999错误的请求或者明确取消任务本身或无效(或可能释放),包含它的会话。

但是,在后台下载的情况下,框架提供了更多信息。您会注意到字典密钥NSURLErrorBackgroundTaskCancelledReasonKey)的值为0.如果您在文档中查看该内容,则会发现这与NSURLErrorCancelledReasonUserForceQuitApplication一致。

换句话说,该请求被取消,因为用户明确地双击主页按钮并向上滑动终止您的应用程序。后台下载被自动取消。

有关更多信息,请参阅NSURLSession Class Reference

相关问题