1

私の iOS アプリでは、UI を更新する前に条件が true になるのを待ちたいと思います。私はこのようにやっています:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
  while (!condition) NSLog("waiting for the condition");
  dispatch_sync(dispatch_get_main_queue, ^{
    //update the UI here
  });
});

上記のコードは問題なく動作しますが、 whileループを使用して待機中のジョブを実行するのが良いかどうか、さらに良い方法があるかどうかを尋ねたいと思います。ありがとう!

- -アップデート

条件は、実際には 4 つの BOOL 変数の組み合わせです。各変数は、サーバーからのコンテンツの要求に関連付けられています。AFNetworking フレームワークを使用しています。4 つの要求それぞれの完了ブロックで、関連する BOOL 変数を YES に設定します。したがって、実際の while ループは次のようになります。

while (!([MyRequest request1].isFinished && [MyRequest request2].isFinished && [MyRequest request3].isFinished && [MyRequest request4].isFinished)) NSLog("waiting for the condition");
4

2 に答える 2