我已经实现了一个简单的时钟:
- (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的值似乎是电池密集型的。我该怎么做?
答案 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
方法