NSTimer não para

Eu tenho um temporizador que dispara quando oviewWillAppear método está sendo chamado e invalida quando oviewDidDisappear método está sendo chamado. Mas depois de uma certa quantidade de alternância entre as visualizações, o timer continua disparando mesmo depois de ter sido invalidado. Qual é o problema?

Aqui está o meu código:

<code>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");
}
</code>

questionAnswers(12)

yourAnswerToTheQuestion