应用中有多个NSTimers

时间:2012-03-23 04:18:38

标签: iphone ios nstimer

我正在使用NSTimer执行某些操作,并在 appDelegate 的主线程中运行3 NSTimers。它会在速度方面影响应用程序的性能吗?

1 个答案:

答案 0 :(得分:1)

定时器的开销非常低。我认为你根本不会看到任何影响。如果频率在几秒钟的数量级,你可以做我为一个关心几个不同时间间隔的应用做的事情:一个NSTimer每秒发射一次,然后模拟检查和通知谁关心每个频率。

- (void)secondsTimerFired:(NSTimer *)timer {

    NSDate *now = [NSDate date];
    NSInteger nowInterval = (NSInteger)[now timeIntervalSinceReferenceDate];

    [[NSNotificationCenter defaultCenter] postNotificationName:@"SecondsTimerFired" object:self];

    if (nowInterval % 5 == 0) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"Second_5_TimerFired" object:self];
    }

    if (nowInterval % 12 == 0) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"Second_12_TimerFired" object:self];
    }
}

另一个好处是我有一个地方和一个计时器来使应用程序活动/非活动事件无效并重新启动。