的NSTimer奇怪的问题

问题描述:

我有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

如果你知道timerFired:被调用的事实,那么doSomething不会被调用的唯一原因是vViewController1是nill。再次检查。

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