- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在一年多前开发了一个应用程序,为用户提供照片共享和视频共享。它运行没有任何问题,直到几周前我引入了一个新功能:将视频标记为仅在 WiFi 可用时上传的可能性:视频设置为使用 NSURLSession 和 NSURLSessionConfiguration,其中 allowsCellular 设置为 NO .
大多数情况下它工作正常:
但是,有些用户在连接到 WiFi 后无法上传视频。我从他们那里得到了一些日志,每当他们连接到 Wifi 时我都会看到一个错误,出于某种原因 NSURLSession 使委托(delegate)调用:
- (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}
有什么想法吗?会不会是服务器的问题?奇怪的是我无法重现,也无法理解失败的原因
提前致谢!
泽
最佳答案
999 错误通常发生在您的应用取消请求时——通过显式取消任务本身或通过使包含它的 session 无效(或可能释放)。
但是,在后台下载的情况下,框架提供了更多信息。您会注意到字典键 NSURLErrorBackgroundTaskCancelledReasonKey
) 的值为 0。如果您在文档中查找它,您会发现它对应于 NSURLErrorCancelledReasonUserForceQuitApplication
。 .
换句话说,请求被取消是因为用户明确双击主页按钮并向上滑动以终止您的应用程序。后台下载因此自动取消。
参见 NSURLSession Class Reference了解更多信息。
关于ios - WiFi上传时NSURLSession错误 : NSURLErrorDomain Code=-999,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916967/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!