objective-c – 如何在RestKit中过早取消请求并调用“didFailWithError”

objective-c – 如何在RestKit中过早取消请求并调用“didFailWithError”,第1张

概述我在Objective-C项目中使用RestKit,需要为大约10秒钟的服务指定超时时间. 阅读后,它看起来不像RestKit支持这样,所以我的计划是: >发送请求时启动计时器 >加载数据时,禁用定时器 这是我的问题 如果定时器方法触发,我需要取消请求并手动调用以下方法.我不是100%肯定如何实现这一点. my other question中有一些上下文,显示了RestKit在我的项目中的实现以及 我在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] }
总结

以上是内存溢出为你收集整理的objective-c – 如何在RestKit中过早取消请求并调用“didFailWithError”全部内容,希望文章能够帮你解决objective-c – 如何在RestKit中过早取消请求并调用“didFailWithError”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1233281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存