1

我已经实现了一个简单的时钟,如下所示:

- (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 的值似乎很耗电。我该怎么做?

4

2 回答 2

4

实现这一目标的最简单方法是什么?只需NSTimer在警报时设置另一个即可。

NSTimer* myTimer = [[NSTimer alloc] initWithFireDate:(NSDate *)date
                                            interval:(NSTimeInterval)seconds
                                              target:(id)target
                                            selector:(SEL)aSelector
                                            userInfo:(id)userInfo
                                             repeats:(BOOL)repeats];
于 2010-07-15T11:41:53.450 回答
0

你可以使用initWithFireDate方法

于 2010-07-15T11:38:54.187 回答