0

ユーザーがログインすると、次のものが複数あります。

 [[RKObjectManager sharedManager] 
     getObjectsAtPath:path
     parameters:nil<br/> success:
         ^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

さて、次のページを表示するには、それらがすべて終了するのを待ちたいと思います。それらを別のブロックに入れて、最後のブロックに到達するまでブロックから戻ることを考えましたが、これは非同期呼び出しの目的を殺しているようです。

特定の部分が完了したらキーを YES と NO に設定し、すべてのキーが YES に設定されるのを待つ辞書を持つことを考えましたが、これはロック/同時実行の問題が発生しやすいようです。

それで、これを行うためのアイデアはありますか?!

ありがとう!

4

1 に答える 1

0

ディクショナリ ルートは機能し、成功とエラーのコールバックはすべてメイン スレッドで実行されるため、スレッドの問題は発生しません。

または、どれが完了してどれが完了していないかを気にしない場合は、単純なカウンターを使用できます。

または、 の を使用して、まだ完了していないタスクがあるかどうかを各成功ブロックでチェックすることもできますoperationQueue(RKObjectManagerただし、 を使用している場合の有効性とsharedManager、同時にキューに他のものがいくつあるかを考慮する必要があります)。

于 2013-07-04T16:23:43.157 に答える