2012-04-10 46 views
3

我正試圖在我的應用程序中實現上傳隊列。我正在將我的RKRequest s放入RKRequestQueue,並致電[queue start]。但是,衆所周知,網絡連接是不會永遠持續下去的。我現在使用RKReachabilityObserver來確定何時暫停和恢復我的隊列,並且它工作正常(至少現在,但是我聽說過有關RestKit中可達性代碼的一些問題)。這讓我停止發送新的數據,直到網絡再次可用。但是,當網絡連接丟失時,所有活動的RKRequest正在發行- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error,我認爲,我將能夠將我的RKRequest重新排隊。RestKit:在RKRequestQueue中請求RKRequest

所以,我嘗試這樣做:

- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error 
{ 
    NSLog(@"Request failed"); 
    [[request queue] cancelRequest:request]; 
    [[request queue] addRequest:request]; 
} 

但我在RKRequestdidFailLoadWithError方法得到一個EXC_BAD_ACCESS地方。

我的問題是:我該如何請RKRequest

回答

1

沒有取消並加入到隊列中,做到:

[request send]; 

但是這方面的最佳解決方案真的會使用RKClient,這讓事情變得更加簡單。你不必擔心隊列。客戶端附帶RKRequestQueue實例,並在幕後執行所有魔術,具體來說,它將爲給定客戶端配置的所有請求添加到客戶端請求隊列併爲您分派。

+0

謝謝,我試過這個,但是當我調用'[request send]'時,我試圖多次添加相同的請求'。在再次發送請求之前,我已經添加了[[request queue] cancelRequest:request]',現在看來它正在工作。 再次感謝您。 – anticyclope 2012-04-11 03:11:49