gpt4 book ai didi

ios - dataTaskWithURL doco是什么意思:{NSURLErrorDomain,NSURLErrorCancelled}的错误值是什么意思?

转载 作者:行者123 更新时间:2023-12-01 17:52:36 25 4
gpt4 key购买 nike

假设您正在使用NSURLSession dataTaskWithURL:...

self.currentConnection =
[sess dataTaskWithURL:goUrl
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
[self.results addObjectsFromArray: [self yourDataConversionCode:data] ];

dispatch_async(dispatch_get_main_queue(), ^{ if (after) after(); );
}];

当然,如果可能需要取消它。 (例如,用户已更改搜索词或类似问题。)使用...很容易
-(void)cancelAnyCurrentBooksearch
{
[self.currentConnection cancel];
self.currentConnection = nil;
}

但是,愚蠢的 仍然调用完成块,这很烦人。

现在,这是取消的“文档”:
/* -cancel returns immediately, but marks a task as being canceled.
* The task will signal -URLSession:task:didCompleteWithError: with an
* error value of { NSURLErrorDomain, NSURLErrorCancelled }.
*/
- (void)cancel;

这是问题所在...

这到底是什么意思:

错误值为{NSURLErrorDomain,NSURLErrorCancelled}

NSError中可以有两个值吗?

如果是这样,我该如何检查NSError是否是 ,即:

“{NSURLErrorDomain,NSURLErrorCancelled}”

不管它是什么意思?

请注意,如果您这样做:
self.currentConnection =
[sess dataTaskWithURL:goUrl
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
if( [error code] == NSURLErrorCancelled )
{
NSLog(@" seemed to be CANCELLED programmatically?");
return;
}

[self.results addObjectsFromArray: [self yourDataConversionCode:data] ];

dispatch_async(dispatch_get_main_queue(), ^{ if (after) after(); );
}];

它确实“似乎可以工作”-但当然很难知道。

那么,如何检查呢?
 * The task will signal -URLSession:task:didCompleteWithError: with an
* error value of { NSURLErrorDomain, NSURLErrorCancelled }.

文档中的“花括号中的两个错误”是什么意思?

这是否意味着 可能发生?

我不知道如何确定这里的答案,这是没有记载的。

最佳答案

错误值{NSURLErrorDomain,NSURLErrorCancelled}

NSError中可以有两个值吗?

是。这是一个对象。它具有属性。如果检查the documentation,则会发现它同时具有domaincode属性。

如果您想同时检查两者,则可以按照预期进行:

if ([error.domain isEqualToString:NSURLErrorDomain] && 
error.code == NSURLErrorCancelled)

有关错误处理的完整详细信息,包括域和代码,请参见 Error Handling Programming Guide

话虽如此,我认为将NSURLErrorDomain以外的任何其他东西与NSURLSession数据任务完成处理程序(使用NSURLErrorCancelled的代码)相关联几乎是不可能的,因此您只需检查一下就可以了。

关于ios - dataTaskWithURL doco是什么意思:{NSURLErrorDomain,NSURLErrorCancelled}的错误值是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25079808/

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