答案 0 :(得分:3)
[timer invalidate];
timer = nil;
答案 1 :(得分:2)
如果你想肯定停止NSTimer
,你可以使用
[timer invalidate];
但是,如果您想暂时阻止定时器触发,可以考虑使用
[timer setFireDate:[NSDate distantFuture]];
一旦在运行循环上调度,计时器将以指定的时间间隔触发,直到它失效。非重复计时器在触发后立即使其自身无效。但是,对于重复计时器,您必须通过调用其invalidate方法自行使计时器对象无效。调用此方法请求从当前运行循环中删除计时器;因此,您应始终从安装计时器的同一线程中调用invalidate方法。使计时器失效会立即禁用它,以使其不再影响运行循环。然后,run循环在invalidate方法返回之前或之后的某个时间点删除并释放计时器。一旦失效,就不能重复使用计时器对象。
答案 2 :(得分:2)
您应仔细检查以确保计时器有效,然后再将其设为无效。
if ([timer isValid]) {
[timer invalidate];
timer = nil;
}
答案 3 :(得分:0)
我不确定NSTimer thread
的含义,但要停止您安排的NSTimer实例,可以致电[NSTimer invalidate]
。