私は非常にシンプルなiPhoneゲームに取り組んでおり、ランダム化された音声プロンプトに基づいて、適切な色のボタンを連続して何度も選択する必要があります。ボタンが1色でクリックされた場合、毎回ハードコードされた色になるように設定しています(たとえば、赤をクリックすると、常に青に変わります)。色変更方法はIBOutletで設定されています。whileループでタイマーを設定し、タイマーが終了すると、プレーヤーが正しい選択をしたかどうかを確認します。問題は、タイマーが切れるまでボタンの色の変化が起こらないことであり、これは正解をチェックするために使用される方法に問題を引き起こします。この色の変化を即座に起こさせる方法はありますか?私が検索したところ、コードが実行されるまでストーリーボードのアクションが発生しないことが関係していることがわかりましたが、私はそうしていません。タイマーを使って何かを見つけました。答えが正しければタイマーを呼び出すメソッドのセクションは次のとおりです。
BOOL rightChoice = true;
int colorNum;
NSDate *startTime;
NSTimeInterval elapsed;
colorNum = [self randomizeNum:middle];
[self setTextLabel:colorNum];
while (rightChoice){
elapsed = 0.0;
startTime = [NSDate date];
while (elapsed < 2.0){
elapsed = [startTime timeIntervalSinceNow] * -1.0;
NSLog(@"elapsed time%f", elapsed);
}
rightChoice = [self correctChoice:middleStatus :colorNum];
colorNum = [self randomizeNum:middle];
}