我正在尝试在我的应用程序中实现上传队列。我将RKRequest
放入RKRequestQueue
并调用[queue start]
。但是,众所周知,网络连接不会永远持续下去。我现在使用RKReachabilityObserver
来确定何时暂停和恢复我的队列,并且运行良好(至少现在是这样,但是我听说过RestKit中的可达性代码存在一些问题)。这使我停止发送新数据,直到网络再次可用为止。但是,当网络连接断开时,所有 Activity 的RKRequest
都会发出- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error
,我认为,我可以将RKRequest
再次放回队列中。
所以,我尝试了这个:
- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error
{
NSLog(@"Request failed");
[[request queue] cancelRequest:request];
[[request queue] addRequest:request];
}
但是我在
EXC_BAD_ACCESS
的didFailLoadWithError
方法中某处得到了RKRequest
。我的问题是:如何重新排队
RKRequest
? 最佳答案
而不是取消并添加到队列中,请执行以下操作:
[request send];
但是,为此的最佳解决方案实际上是使用RKClient,它使事情变得更容易。您不必担心队列。客户端随附RKRequestQueue实例,并在幕后进行所有操作,特别是它将为给定客户端配置的所有请求添加到客户端请求队列中,并为您调度它们。