我在.h中声明了NSTimer,在/ m的viewDidLoad中我有代码:
timer = [NSTimer scheduledTimerWithTimeInterval:kComplexTimer target:self selector:@selector (main) userInfo:nil repeats:YES];
我也有[计时器发布];在我的dealloc。
然而,当我退出视图并返回它时,计时器实际上没有释放,它的速度加倍!我该如何解决这个问题呢?我做错了什么???
由于
答案 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]来停止计时器。