【问题标题】:NSURLSession didCompleteWithError:gets called with NSError is nilNSURLSession didCompleteWithError:gets 调用 NSError 为 nil
【发布时间】:2015-09-24 14:04:44
【问题描述】:

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

由于错误参数没有给出任何信息,我如何找出问题所在。

【问题讨论】:

标签: ios nsurlsession aws-sdk nserror nsurlsessiontask


【解决方案1】:

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

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

这是文档中的link

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

- URLSession:didBecomeInvalidWithError:

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

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

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

 [self.backgroundSession invalidateAndCancel];

请在link

阅读有关“URL Session 的生命周期”的文档

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多