4

场景在上传过程中多次将应用程序带到后台和前台,didCompleteWithError: 在将应用程序带到前台时调用方法,错误参数为空。概率是 1/3。

我如何找出哪里出了问题,因为错误参数没有给出任何东西。

4

1 回答 1

3

问题是 didCompleteWithError报告客户端错误,否则为零。iOS 文档说:

“服务器错误不会通过错误参数报告。 您的委托通过错误参数收到的唯一错误是客户端错误,例如无法解析主机名或无法连接到主机。

这是文档的链接

如果要检查会话的错误,则必须实现会话协议委托

- URLSession:didBecomeInvalidWithError:

请记住在停止使用会话后使会话无效。所以如果你像这样创建一个 NSURLSession:

NSURLSessionConfiguration *backgroundConfigurationObject = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"applycasession"];
    self.backgroundSession = [NSURLSession sessionWithConfiguration:backgroundConfigurationObject delegate:self delegateQueue:[NSOperationQueue mainQueue]];

当你完成使用它时,你必须调用:

 [self.backgroundSession invalidateAndCancel];

请在此链接阅读有关“ URL Session 的生命周期”的文档

于 2016-05-15T15:48:13.017 回答