在iPhone上实现警报的最有效方法

时间:2010-07-15 11:36:27

标签: iphone multithreading nsdate clock alarm

我已经实现了一个简单的时钟:

- (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]];

}

它基本上只是每秒运行一次以更新UILabel中的时间的任务。现在如果我想延长这个时钟以在某些时间作出反应,就像闹钟一样。 不断检查NSDate的值似乎是电池密集型的。我该怎么做?

2 个答案:

答案 0 :(得分:4)

实现这一目标的最简单方法是什么?只需要另一个NSTimer设置为在闹钟时触发。

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

答案 1 :(得分:0)

您可以使用initWithFireDate方法