Как остановить событие NStimer?
Возможный дубликат:
NSTimer не останавливается
В моем приложении я использую NStimer для вызова функции анимации каждые 3 секунды. Я хочу остановить этот таймер и вызвать другое событие, пока таймер все еще работает. Возможно ли это?
Ответы
Ответ 1
@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;
Ответ 2
Во-первых, вы хотите сохранить указатель на таймер
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;