2011-12-15 3 views
26

Possible en double:
NSTimer doesn't stopIOS: arrêter un NSTimer

J'ai ce code:

[NSTimer scheduledTimerWithTimeInterval:110.0 
           target:self 
           selector:@selector(targetMethod:) 
           userInfo:nil 
           repeats:YES]; 

- (void) targetMethod:(NSTimer) timer{ 
NSLog(@"Hello World");} 

à targetMethod je peux arrêter la minuterie avec [invalidate minuterie], mais hors de cette méthode, comment puis-je arrêter targetMethod?

Répondre

69

Vous pouvez garder votre NSTimer dans une variable et arrêter le chronomètre en utilisant la méthode invalidate. Comme le suivant:

NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:110.0 
           target:self 
           selector:@selector(targetMethod:) 
           userInfo:nil 
           repeats:YES]; 

[myTimer invalidate]; 
16

Une façon de le faire est de créer NSTimer * timer; comme une variable globale de sorte que vous pouvez avoir un handle à la minuterie. Quelque chose aime ça:

NSTimer *timer; //global var 

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

Pour arrêter la minuterie, quelque part dans la même classe:

[timer invalidate];