Ho un timer che si attiva quando il metodo viewWillAppear
viene chiamato e invalida quando viene chiamato il metodo viewDidDisappear
. Ma dopo una certa quantità di commutazione tra le visualizzazioni, il timer continua a sparare anche dopo che è stato invalidato. Qual è il problema?NSTimer non si ferma
Ecco il mio codice:
NSTimer *timer;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
timer = [NSTimer scheduledTimerWithTimeInterval: 0.2f
target: self
selector:@selector(timerAction)
userInfo:nil
repeats:YES];
}
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[timer invalidate];
timer = nil;
}
-(void) timerAction
{
NSLog(@"timerAction");
}
Come fare questo in ARC quando 'retain' e' release' non sono consentiti? –
Per iOS 7/8, vedere la risposta sotto sull'uso di un paio di ripetizioni ': NO'. –