如何停止NStimer事件?

可能重复:
NSTimer不停止

在我的应用程序中,我正在使用NStimer每3秒调用一次animation函数。 我想停止这个定时器,并在定时器仍在运行时调用另一个事件。 这可能吗?

@interface NSTimer *autoTimer; @implementation // Start timer autoTimer = [NSTimer scheduledTimerWithTimeInterval:(3.0) target:self selector:@selector(autoTimerFired:) userInfo:nil repeats:YES]; // Stop timer: [autoTimer invalidate]; autoTimer = nil; 

首先,你要保留一个指向定时器的指针

 self.packetTimer = [NSTimer timerWithTimeInterval:CONNECTION_TIMEOUT target:self selector:@selector(connectionTimeout:) userInfo:nil repeats:NO]; [[NSRunLoop currentRunLoop] addTimer:packetTimer forMode:NSDefaultRunLoopMode]; 

如果代码中的其他位置要取消,请调用:

 [self.packetTimer invalidate]; self.packetTimer = nil; 
Interesting Posts