场景是在上传过程中多次将应用程序带到后台和前台,在将应用程序带到前台时调用 didCompleteWithError: 方法,错误参数为 null。概率是1/3。
由于错误参数没有提供任何信息,我如何找出出了什么问题。
问题是 didCompleteWithError 报告only客户端错误,否则为零。 iOS 文档说:
“服务器错误不会通过错误参数报告。您的委托通过 error 参数收到的唯一错误是客户端错误,
例如无法解析主机名或连接到主机。"
这是link到文档。
如果你想检查会话的错误,你必须实现会话协议委托
- URLSession:didBecomeInvalidWithError:
停止使用后请记住使会话失效。
所以如果你创建一个像这样的 NSURLSession :
NSURLSessionConfiguration *backgroundConfigurationObject = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"applycasession"];
self.backgroundSession = [NSURLSession sessionWithConfiguration:backgroundConfigurationObject delegate:self delegateQueue:[NSOperationQueue mainQueue]];
当你使用完它后,你必须调用:
[self.backgroundSession invalidateAndCancel];
请阅读有关“URL会话的生命周期“ 在这link
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)