gpt4 book ai didi

ios - URLSession didCompleteWithError 无错误

转载 作者:可可西里 更新时间:2023-11-01 05:40:24 25 4
gpt4 key购买 nike

在 IOS9 应用程序上工作,该应用程序在作为 NSURLSessionDelegate 的 Controller 中执行后台 URLSession。这是我如何开始的:

    self.session_data = [[NSMutableData alloc] init];
NSURL *url = [NSURL URLWithString:src];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

NSURLSessionConfiguration *backgroundConfigObject = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier: @"myBackgroundSessionIdentifier"];
self.session = [NSURLSession sessionWithConfiguration: backgroundConfigObject delegate: self delegateQueue: [NSOperationQueue mainQueue]];

self.download = [self.session dataTaskWithRequest: request ];
[self.download resume];

到目前为止一切顺利。我实现了三个委托(delegate)方法。首先调用“didReceiveData”,然后我存储数据。

- (void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data{

NSLog(@"%s",__func__);
[self.session_data appendData:data];
}

紧接着“didCompleteWithError”被调用。永远不会调用“completionHandler”处理程序。

'didCompleteWithError' 消息令人困惑的是实际的错误对象是 nil。我见过一些类似的悬而未决的问题。加载时我不会离开 Controller / View 。我需要将该功能移至 AppDelegate 中吗?

最佳答案

Apple 文档说didCompleteWithError 报告 客户端错误,否则为零:

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

这是 link到文档。

如果你想检查其他错误,比如 session 错误,你必须实现 session 协议(protocol)委托(delegate)

- URLSession:didBecomeInvalidWithError:

有关详细信息,请参阅 this回答

关于ios - URLSession didCompleteWithError 无错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com