objective-c – 如何在RestKit中过早取消请求并调用“didFailWit
发布时间:2020-12-16 07:54:00 所属栏目:百科 来源:网络整理
导读:我在Objective-C项目中使用RestKit,需要为大约10秒钟的服务指定超时时间. 阅读后,它看起来不像RestKit支持这样,所以我的计划是: 发送请求时启动计时器 加载数据时,禁用定时器 这是我的问题 如果定时器方法触发,我需要取消请求并手动调用以下方法.我不是100
我在Objective-C项目中使用RestKit,需要为大约10秒钟的服务指定超时时间.
阅读后,它看起来不像RestKit支持这样,所以我的计划是: >发送请求时启动计时器 这是我的问题 如果定时器方法触发,我需要取消请求并手动调用以下方法.我不是100%肯定如何实现这一点. my other question中有一些上下文,显示了RestKit在我的项目中的实现以及在这种情况下正在做什么. 非常感谢您提供任何帮助,您可以给我这个. - (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error { NSLog(@"Hit error: %@",error); } 解决方法
您可以使用cancelRequestsWithDelegate:selector来实现所描述的工作流程.
- (void)cancelAfterTimeout { [[[[RKObjectManager sharedManager] client] requestQueue] cancelRequestsWithDelegate:self]; NSError *myError = [[[NSError alloc] initWithDomain:NSPOSIXErrorDomain code:12345 userInfo:nil] autorelease]; //feel free to customize the error code,domain and add userInfo when needed. [self handleRestKitError:myError]; } 但是,调用该代理错误处理程序可能很棘手,但您可以通过创建新的单独的错误处理程序来解决此问题: - (void)handleRestKitError:(NSError*)error { //do something with the error } 并修改您的didFailWithError:方法的正文: - (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error { [self handleRestKitError:error] } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |