Nic*_*ick 10 xcode objective-c restkit
我在Objective-C项目中使用RestKit,需要为我的服务调用指定超时大约10秒.
阅读后,它看起来不像RestKit支持这一点,所以我的计划是:
这是我的问题......
如果定时器方法触发,我需要取消请求并手动调用下面的方法.我不是百分百肯定如何实现这一目标.
在我的另一个问题中有一些上下文,展示了如何在我的项目中实现RestKit以及它在这种情况下正在做什么.
非常感谢您提供的任何帮助.
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {
NSLog(@"Hit error: %@", error);
}
Run Code Online (Sandbox Code Playgroud)
在RestKit版本0.20.x中,您可以使用取消预定的请求
[[RKObjectManager sharedManager]
cancelAllObjectRequestOperationsWithMethod:RKRequestMethodAny
matchingPathPattern:YOUR_PATTERN];
Run Code Online (Sandbox Code Playgroud)
您可以使用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];
}
Run Code Online (Sandbox Code Playgroud)
但是,调用该委托错误处理程序可能会很棘手,但您可以通过创建新的,单独的错误处理程序来解决此问题:
- (void)handleRestKitError:(NSError*)error {
//do something with the error
}
Run Code Online (Sandbox Code Playgroud)
并修改didFailWithError:方法的主体:
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {
[self handleRestKitError:error]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4326 次 |
| 最近记录: |