繁体   English   中英

发行NSTimer iPhone?

[英]Releasing an NSTimer iPhone?

我在.h和/ m的viewDidLoad中声明了一个NSTimer,我有以下代码:

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

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

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

谢谢

通常,您无需释放它,因为您尚未保留它。 您所需要做的只是致电[timer invalidate]; 这将停止您的计时器。

很好的回答,但是很好地检查时间是否为零,以避免不必要的异常。

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

谢谢...

[timer invalidate];
timer = nil;

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

您不得在未通过“新”,“分配”,“保留”,“复制”创建的对象上调用释放。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM