发布NSTimer iPhone?

时间:2011-12-17 16:54:00

标签: iphone ios sdk nstimer timing

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

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

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

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

由于

4 个答案:

答案 0 :(得分:6)

你不需要释放它,因为你没有保留它 - 作为一项规则。 您只需拨打[timer invalidate];即可停止计时器。

答案 1 :(得分:3)

很好的答案,但很好的检查时间是否为零以避免意外的异常..

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

谢谢...

答案 2 :(得分:2)

[timer invalidate];
timer = nil;

如果要重置NSTimer

,第二行很重要

答案 3 :(得分:1)

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

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