Duplicata possible:
NSTimer ne s'arrête pas
Dans mon application, j'utilise NStimer pour appeler une fonction d'animation toutes les 3 secondes. Je veux arrêter cette minuterie et appeler un autre événement pendant que la minuterie est toujours en cours d'exécution. Est-ce possible?
@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;
Tout d'abord, vous voulez garder un pointeur sur la minuterie
self.packetTimer = [NSTimer timerWithTimeInterval:CONNECTION_TIMEOUT target:self selector:@selector(connectionTimeout:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:packetTimer forMode:NSDefaultRunLoopMode];
Si, ailleurs dans votre code, vous souhaitez l'annuler, appelez simplement:
[self.packetTimer invalidate];
self.packetTimer = nil;