Mam czasomierz, który uruchamia się po wywołaniu metody viewWillAppear
i unieważnia po wywołaniu metody viewDidDisappear
. Ale po pewnej ilości przełączania między widokami timer kontynuuje strzelanie nawet po jego unieważnieniu. Jaki jest problem?NSTimer nie zatrzymuje się
Oto mój kod:
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");
}
Jak to zrobić w ARC, gdy 'keep 'i' release' są niedozwolone? –
Dla iOS 7/8, patrz odpowiedź poniżej na temat korzystania z pary zegarów 'repeats: NO'. –