发布NSTimer iPhone?

我在.h中声明了NSTimer,在/ m的viewDidLoad中我有代码:

timer = [NSTimer scheduledTimerWithTimeInterval:kComplexTimer target:self selector:@selector (main) userInfo:nil repeats:YES]; 

我也有[计时器发布]; 在我的dealloc。

然而,当我退出视图并返回它时,计时器实际上没有释放,它的速度加倍! 我如何解决这个问题以及我做错了什么?

谢谢

很好的答案,但很好检查时间是否为零,以避免不必要的exception..

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

谢谢…

你不需要释放它,因为你没有保留它 – 作为一项规则。 你需要做的就是调用[timer invalidate]; 这将停止你的计时器。

 [timer invalidate]; timer = nil; 

如果要重置NSTimer ,第二行很重要

您不得在不通过“new”,“alloc”,“retain”,“copy”创建的对象上调用release。

在这种情况下,您已通过scheduledTimerWithTimeInterval方法创建了一个Timer,因此您不能调用release方法,而是调用[timer invalidate]来停止计时器。