Fat*_*tie 1 objective-c nserror ios nsurlsession
假设您正在使用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(); );
}];
Run Code Online (Sandbox Code Playgroud)
当然,如果可能需要取消它.(比方说,用户已经更改了搜索字词或类似问题.)这很容易...
-(void)cancelAnyCurrentBooksearch
{
[self.currentConnection cancel];
self.currentConnection = nil;
}
Run Code Online (Sandbox Code Playgroud)
然而,愚蠢地它仍然调用完成块非常烦人.
现在,这是取消的"文档":
/* -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;
Run Code Online (Sandbox Code Playgroud)
这到底是什么意思:
错误值{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(); );
}];
Run Code Online (Sandbox Code Playgroud)
它确实"似乎有效" - 但当然很难知道.
那么,如何检查?
* The task will signal -URLSession:task:didCompleteWithError: with an
* error value of { NSURLErrorDomain, NSURLErrorCancelled }.
Run Code Online (Sandbox Code Playgroud)
文档中"花括号中的两个错误"是什么意思?
这是否意味着其中任何一种都可能发生?
我不知道如何确定这里肯定的答案,它没有记录.
错误值{NSURLErrorDomain,NSURLErrorCancelled}
你能在NSError中得到两个值吗?
是.这是一个对象.它有属性.如果您查看文档,您会发现它同时具有a domain和code属性.
如果你想同时检查两者,你可以按照预期的方式进行检查:
if ([error.domain isEqualToString:NSURLErrorDomain] &&
error.code == NSURLErrorCancelled)
Run Code Online (Sandbox Code Playgroud)
有关错误处理的完整详细信息,请参阅错误处理编程指南,包括域和代码.
话虽如此,我认为这是不可能的远程任何东西其他比NSURLErrorDomain将要与NSURLErrorCancelled的代码NSURLSession数据任务完成处理相关的,所以你应该罚款只是检查的你.
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |