2013-05-09 35 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並且該運行通過回調。沒有「其他當前視圖控制器」這樣的東西。這完全是關於第一響應者和視圖層次結構,對運行循環也沒有任何影響。

相關問題