2013-05-09 32 views
0

如果我开始这样一个NSTimer: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

是。

好的,现在这里是一个扩展描述。 NSTimer在最近的NSRunLoop上注册自己,也就是当前的调度循环(它们可以嵌套)。该循环向各种来源询问事件并调用相应的回调。

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

相关问题