Как сбросить таймер обратного отсчета, когда он достигнет 0?(Xcode 4) - PullRequest
0 голосов
/ 21 ноября 2011

первый вопрос, и я изучил этот вопрос и не могу найти никаких ответов.

Я хотел бы реализовать таймер обратного отсчета в моем приложении, который запускается через 30 секунд и сбрасывается, когда он достигает 0. Он будет отсчитывать с интервалом в 1 секунду. Я поиграл с ресурсами, которые предоставляет Apple, и я не могу реализовать NStimer, как я только что объяснил. Есть какие-нибудь предложения о том, как я мог бы написать это? В конце концов я хотел бы связать это с кнопкой, которая запускает таймер при нажатии. Я ценю любые советы на эту тему!

1 Ответ

1 голос
/ 21 ноября 2011

в вашем .h

@interface YourObject : NSObject {
   int countdownNumber;
   NSTimer* timer;
}

@property (nonatomic, assign) int countdownNumber;
@property (nonatomic, retain) NSTimer* timer;

- (IBAction)clickOnButton:(id)sender
- (void)countdown;
@end

в вашем .m

yourInitMethod {  // ViewDidLoad, initWith...., or any init method you have
  self.timer = nil;
}

- (IBAction)clickOnButton:(id)sender {
    if (self.timer != nil) {
         [self.timer invalidate];
    }

   self.countdownNumber = 30;
   self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countdown) userInfo:nil repeats:YES];
}

- (void)countdown {
   self.countdownNumber--;
   if (self.countdownNumber == 0) {
      [self.timer invalidate];
      self.timer = nil;
   }
}
...