私はiPhone用のプログラミングを学び、プラットフォーム上でボールが上向きに跳ね返る単純なボールバウンスゲームを作成しています。ゲームは動作し、ボールが画面の上部1/4に達するとボールが上に移動するように見えます(Doodle Jumpと同様に、画面のプラットフォームが下に移動します)が、スコアカウンターを実装しようとすると問題が発生します。ボールが画面の上部1/4に到達したら、スコアに追加して、次の2行のコードを実行します。
NSString *nssScore = [NSString stringWithFormat:@"%i", score];
lblScore.text = nssScore;
lblScoreはUILabelであり、ビュー内のテキストラベルにリンクされています。画面上のテキストが更新されるたびに、ボールとすべてのプラットフォームが開始位置に戻りますが、ボールはその速度を維持します。デバッガーを1行ずつ実行すると、両方のコード行をエラーなしで実行できます。問題は、次の更新で画面上のテキストが変更されたときに発生します。メインのゲームループとフレームレートは、次のコード行で実行されます。
[NSTimer scheduledTimerWithTimeInterval:1.0/60
target:self selector:@selector(gameLoop) userInfo:nil repeats:YES];