RestKit:在RKRequestQueue中重新排队RKRequest

时间:2012-04-10 09:28:44

标签: ios network-programming restkit

我正在尝试在我的应用程序中实现上传队列。我将RKRequest放入RKRequestQueue并致电[queue start]。但是,众所周知,网络连接不会永远存在。我现在正在使用RKReachabilityObserver来确定何时暂停和恢复我的队列,并且它工作正常(至少现在,但我已经听说RestKit中的可达性代码存在一些问题)。这使我可以停止发送新数据,直到网络再次可用。但是当网络连接丢失时,所有活跃的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];
}

但是我在[{1}} EXC_BAD_ACCESS方法的某个位置获得didFailLoadWithError

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

1 个答案:

答案 0 :(得分:1)

不要取消和添加到队列,而是执行:

[request send];

但对此最好的解决方案是使用RKClient,它会让事情变得更容易。你不必担心排队。客户端带有RKRequestQueue的实例,并在幕后完成所有魔术,特别是它将为给定客户端配置的所有请求添加到客户端请求队列并为您分派它们。