2011-12-15 21 views
26

Eventuali duplicati:
NSTimer doesn't stopIOS: fermare un NSTimer

ho questo codice:

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

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

in targetMethod riesco a smettere di timer con [invalidate Timer], ma fuori da questo metodo, come posso interrompere targetMethod?

risposta

69

È possibile mantenere il vostro NSTimer in una variabile e arrestare il timer utilizzando il metodo invalidate. Mi piace il seguente:

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

[myTimer invalidate]; 
16

Un modo per farlo è creare il timer NSTimer *; come variabile globale in modo da poter avere un handle per il timer. Qualche cosa piace questo:

NSTimer *timer; //global var 

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

Per interrompere il timer da qualche parte nella stessa classe:

[timer invalidate];