2012-04-10 7 views
3

私は自分のアプリケーションにアップロードキューを実装しようとしています。私はRKRequestRKRequestQueueに入れ、[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

関連する問題