我有一个NSTimer,我希望在我离开vViewVontroller
时停止:
计时器是我从viewWillAppear
调用的方法:
- (void) myMehtod
{
//timer = [[NSTimer alloc] init];
// appel de la methode chaque 10 secondes.
timer = [NSTimer scheduledTimerWithTimeInterval:10.0f
target:self selector:@selector(AnotherMethod) userInfo:nil repeats:YES];
//self.timerUsed = timer;
}
我在viewWillDisappear
- (void) stopTimer
{
[timer invalidate];
timer = nil;
}
PS:我在这个问题上尝试了user1045302的答案,但它不起作用:
答案 0 :(得分:5)
问题的根源可能是myMehtod
被调用两次或更多次。
由于该方法在设置新定时器之前不会使现有定时器无效,因此实际上有几个定时器同时勾选。
修复很简单:在设置新计时器之前使旧计时器无效:
- (void)myMehtod
{
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:10.0f
target:self
selector:@selector(anotherMethod)
userInfo:nil
repeats:YES];
}