2010-07-15 5 views
1

я реализовал простые часы, как так:Наиболее эффективный способ реализации будильника на iPhone

- (void)runTimer { 

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

} 

- (void)showActivity { 

    NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease]; 
    NSDate *date = [NSDate date]; 

    [df setDateFormat:@"HH:mm"]; 

    [clock setFont:digitalFont]; 

    [clock setText:[df stringFromDate:date]]; 

} 

Это basiclly просто задача, которая выполняется каждый второй обновления времени в UILabel. Теперь, если я хотел бы продлить эти часы, чтобы реагировать на определенное время, точно так же, как будильник. Постоянно проверяя значение NSDate, кажется, что аккумулятор интенсивный. Как мне это сделать?

ответ

4

Самый простой способ для достижения этой цели? Просто добавьте еще один NSTimer, который будет гореть во время тревоги.

NSTimer* myTimer = [[NSTimer alloc] initWithFireDate:(NSDate *)date 
              interval:(NSTimeInterval)seconds 
               target:(id)target 
              selector:(SEL)aSelector 
              userInfo:(id)userInfo 
              repeats:(BOOL)repeats];