gpt4 book ai didi

ios - NSURLSession 委托(delegate) didCompleteWithError 未调用

转载 作者:行者123 更新时间:2023-12-01 16:29:20 25 4
gpt4 key购买 nike

我有以下 NSURLSession 的实现.

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
self.session = [NSURLSession sessionWithConfiguration:configuration
delegate:self
delegateQueue: nil];

NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request];
[task resume];
while(!finished) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:100000]];
}

我已经实现了以下委托(delegate)方法:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data  
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)aresponse
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didCompleteWithError:(NSError *)error
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition,
NSURLCredential *credential))completionHandler

didCompleteWithError 时,上述 while 循环的“已完成”变量设置为 1当表示存在网络故障等问题时收到委托(delegate)...

当网络关闭时,我没有得到 didCompleteWithErrorcallback ,因此即使指定了 10 秒超时并且我的应用程序崩溃并给出 ,while 循环也不会退出内存警告 .

我确实在所有场景中都正确接收了 didReceiveData、didReceiveResponse 回调。虽然它需要在此处设置 HTTPs,但尚未检查 didReceiveChallenge 回调。

所以,如果你能帮助我,我有以下问题要问:

1)为什么是 didCompleteWithError网络关闭时未收到回调?

2)考虑没有网络问题,是 didCompleteWithError任务成功完成时收到回调?如果没有,什么回调表示任务完成,如 connectionDidFinishLoading使用 NSURLConnection 时?

我在启动任务时在请求参数中使用了缓存策略。是不是因为这个,没有调用didcompletewitherror,而是应该实现缓存委托(delegate)?

伙计们,请帮忙。我被困住了。

谢谢

最佳答案

委托(delegate)队列:[NSOperationQueue 主队列]
而不是 delegateQueue :nil 成功了。
我仍然不确定如何。但是,是的,问题消失了。
有人可以解释这是如何工作的吗?

关于ios - NSURLSession 委托(delegate) didCompleteWithError 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32888036/

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