0

これがすべてのコードではありません。すべてを正しく宣言したことを確認しましたが、「秒」が減少しているため、ラベルは変更されていません。

なぜ「subtractTime」のように、timerLabel.text を「すべき」秒数を使用したフォーマットの文字列に等しくし、アラートを使用してゲームをリセットするときにカウントダウンしているのかわかりません。 t が変化すると、カウントダウンしていることがわかります。そうしないと、「秒」が 0 に等しいからアラートがトリガーされません。

- (void)setupGame;
{
    seconds = 30;
    count = 0;

    timerLabel.text = [NSString stringWithFormat: @"Time: %i", seconds];
    scoreLabel.text = [NSString stringWithFormat: @"Score: %i", count];

    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
         target:self
         selector:@selector(subtractTime)
         userInfo:nil
         repeats:YES];

}
- (void)subtractTime;
{
    seconds--;
    timerLabel.text = [NSString stringWithFormat:@"Time: %i", seconds];

    if (seconds == 0)
    {
        [timer invalidate];
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Time is up !" 
                          message: [NSString stringWithFormat: @"You Scored %i points", count]
                          delegate:self
                          cancelButtonTitle: @"Play Again"
                          otherButtonTitles:nil];

        [alert show];
    }

}
@end
4

1 に答える 1