NSTimer是否可以在整个应用程序中运行?

时间:2013-05-09 23:48:43

标签: objective-c nstimer invalidation

如果我开始这样的NSTimer:

@property (strong) NSTimer * messageTimer;


self.messageTimer = [NSTimer scheduledTimerWithTimeInterval:10.0
                                     target:self
                                   selector:@selector(checkForMessages)
                                   userInfo:nil
                                    repeats:YES];

切换到不同的视图控制器时是否继续运行?

直到我取消它:

[messageTimer invalidate]; self. messageTimer = nil; 

1 个答案:

答案 0 :(得分:1)

好的,现在这里有一个扩展说明。 NSTimer在最近的NSRunLoop上注册,即当前的调度循环(它们可以嵌套)。此循环询问各种事件源并调用相应的回调。

NSTimer触发时,它会将YES返回到NSRunLoop,并且会运行回调。没有“其他当前视图控制器”这样的东西。它完全是关于第一响应者和视图层次结构,对运行循环都没有任何影响。