2010-11-13 156 views
0

我有2個視圖控制器(RootViewController的是的UITabBarController,ViewController1鏈接的UITabBarController的項目)的NSTimer奇怪的問題

在RootViewController的

-(void)startTimer:(NSInteger)v; 
{ 
    [NSTimer scheduledTimerWithTimeInterval:10 
           target:self 
           selector:@selector(timerFired:) 
           userInfo:nil 
           repeats:YES]; 


} 


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


    [vViewController1 doSomething]; 
} 
在ViewController1

-(void)doSomething; 
{ 
    //I set breakpoint but never be fired 
} 

timerFired被激活,但ViewController1中的函數doSomething從未被觸發。

歡迎任何評論

感謝

InterDev中

+0

你確定'vViewController1'不是零嗎? – 2010-11-13 02:36:54

+0

非零,我相信 – arachide 2010-11-13 02:42:43

+0

你能告訴你如何獲得vViewController1的句柄嗎?此外,如果您使用的是屬性定義。 – raidfive 2010-11-13 02:49:07

回答

3

如果你知道timerFired:被調用的事實,那麼doSomething不會被調用的唯一原因是vViewController1是nill。再次檢查。

2

selfscheduledTimerWithTimeIntervaltarget:self意味着RootViewController的,所以它只會調用doSomething在RootViewController的但不是在ViewController1。

+0

謝謝。但我真的需要在ViewController1中調用函數doSomething,我該怎麼辦? – arachide 2010-11-13 02:41:40

+2

它調用'timerFired:'on'RootViewController ',這反過來又調用了'doSomething'(據推測是)'ViewController1'對象。 – 2010-11-13 02:55:44