我正在尝试在我的应用程序中实现上传队列。我将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_ACCESSdidFailLoadWithError方法中某处得到了RKRequest

我的问题是:如何重新排队RKRequest

最佳答案

而不是取消并添加到队列中,请执行以下操作:

[request send];

但是,为此的最佳解决方案实际上是使用RKClient,它使事情变得更容易。您不必担心队列。客户端随附RKRequestQueue实例,并在幕后进行所有操作,特别是它将为给定客户端配置的所有请求添加到客户端请求队列中,并为您调度它们。

07-24 09:22