0

アプリを sleep() したくありませんが、タイマーがアクションを完了するまで待機させたいです (基本的に、1 秒に 1 つずつ、4 つの UILabels を更新します)。

タイマーが完了した後、メインループで起動したいコードがいくつかあります-タイマーが完了するまで待機したいです。現時点では、メイン ループがタイマーを開始し、次のコード ブロックに直接進みます (タイマーがバックグラウンドで刻々と過ぎていきます)。しかし実際には、タイマーが 4 つの UILabels の更新を完了してから、メイン プログラムが次のコード ブロックを起動するようにしたいと考えています。

私はグーグルでYouTubeでいくつかの悪いチュートリアルを見ていますが、実行ループを使用する必要があると思います. これは正しいでしょうか?

4

3 に答える 3

0

を使用する必要がありますNSTimer

以下のコードを参考にしてください。

NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 60.0 target: self
                                   selector: @selector(callAfterSixtySecond:) userInfo: nil repeats: YES];

60.0 秒ごとに、iOS は以下の関数を呼び出します。

-(void) callAfterSixtySecond:(NSTimer*) t 
{
    NSLog(@"red");
    //Put all your UILabel here
}
于 2011-05-16T10:29:36.027 に答える
0

実行したいコードをタイマーが呼び出す関数に入れてみませんか? そうすれば、タイマーが完了するまで呼び出されませんか?

于 2011-05-16T10:19:39.267 に答える
-1

runloopがあなたの助けになるとは思いません、thomsanとjhaliyaは正しいです、そのようにしてください。その後も、実行ループで何かを試したい場合は、セカンダリスレッドの実行ループで試してください。アプリケーションが応答しなくなる可能性があるため、アプリケーションのメイン実行ループに触れないでください

于 2011-05-16T11:27:51.907 に答える