Iphone 使用“后退”按钮时,每个页面加载的计时器减量都会有所不同

Iphone 使用“后退”按钮时,每个页面加载的计时器减量都会有所不同,iphone,xcode,nstimer,Iphone,Xcode,Nstimer,在我先前的问题中 当我使用“Invalidate”和“Release”时,代码运行良好。但当我使用后退按钮时,同样的问题会重复出现。我也需要一个停止选项 -(IBAction)back:(id)sender { [self dismissModalViewControllerAnimated:YES]; } -(IBAction)stop:(id)sender { [theTimer invalidate]; [theTimer release]; } 这是我在这里使用的代码

在我先前的问题中 当我使用“Invalidate”和“Release”时,代码运行良好。但当我使用后退按钮时,同样的问题会重复出现。我也需要一个停止选项

-(IBAction)back:(id)sender
{

   [self dismissModalViewControllerAnimated:YES];
 }


 -(IBAction)stop:(id)sender
 {
[theTimer invalidate];
[theTimer release];
}

这是我在这里使用的代码,但效果不好。

尝试以这种方式使用它

if ([theTimer isValid]) {
    [theTimer invalidate];
    theTimer=nil;
}

并确保调用了您的方法。

无论何时使用计时器,都必须记住使计时器无效。当你们按下后退按钮时,你们的视图控制器已经被改变,但你们的定时器仍在工作,所以在按下后退按钮时你们必须先使定时器失效。当你们alloc timer first检查定时器是否存在时,若定时器存在,你们必须先使定时器失效

if(timer)
{
   [timer invalidate];
    timer = nil;
}  

使用此代码。但是当我单击停止按钮时,计时器没有发生任何变化。您的意思是您的计时器没有停止,好的,然后在
-(iAction)back:(id)sender
方法中使用此代码。。在
-(iAction)back:(id)sender
lineWELL然后让我们深入了解细节。。发布更多类似于初始化计时器的代码。。并确保该方法没有任何递归调用。。再次尝试在页面中查找计时器。。通过搜索。。要确保没有对这个关键字的任何未知调用..实际上在我的代码中-(void)view出现了:(BOOL)animated{count=15;timer=[NSTimer scheduledTimer with timeinterval:1 target:self selector:@selector(updateCounter:)userInfo:nil repeats:YES];//[timer invalidate];}我没有写左边的部分(timer)没错,我搞错了,不。。计时器没有停止,也没有失效。即使在回拨按钮后,它仍在不断减少。谢谢你们,我让它工作了。。谢谢你的回复