【问题标题】:Most efficient way of implementing an alarm on iPhone在 iPhone 上实现警报的最有效方法
【发布时间】:2011-03-16 08:54:18
【问题描述】:

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

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

【问题讨论】:

    标签: iphone multithreading nsdate clock alarm


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你可以使用initWithFireDate方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 2012-01-11
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        相关资源
        最近更新 更多