NSURLSession didCompleteWithError:调用NSError为nil

时间:2015-07-07 07:40:28

标签: ios nsurlsession aws-sdk nserror nsurlsessiontask

在上传过程中,场景将应用程序多次置于后台和前台,调用didCompleteWithError:方法,同时将app带到前台,其中error参数为null。概率是1/3。

如何找出错误,因为错误参数没有提供任何内容。

1 个答案:

答案 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