在上传过程中,场景将应用程序多次置于后台和前台,调用didCompleteWithError:方法,同时将app带到前台,其中error参数为null。概率是1/3。
如何找出错误,因为错误参数没有提供任何内容。
答案 0 :(得分:3)
问题是didCompleteWithError报告仅客户端错误,否则为nil。 iOS doc说:
"不通过error参数报告服务器错误。 您的委托通过错误参数收到的唯一错误是客户端错误, 例如无法解析主机名或连接到主机。"
这是文档的link。
如果要检查会话的错误,则必须实现会话协议委托
- URLSession:didBecomeInvalidWithError:
请记住在停止使用会话后使会话无效。 所以如果你创建一个这样的NSURLSession:
NSURLSessionConfiguration *backgroundConfigurationObject = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"applycasession"];
self.backgroundSession = [NSURLSession sessionWithConfiguration:backgroundConfigurationObject delegate:self delegateQueue:[NSOperationQueue mainQueue]];
完成使用后,您必须致电:
[self.backgroundSession invalidateAndCancel];
请阅读" 网址会话生命周期 "在此link