NSTimer no invalida

Tengo un problema al invalidar mi temporizador.

@property (nonatomic, strong) NSTimer *timer;

Dentro de mi bloque de éxito, estoy asignando y configurando mi temporizador en el hilo principal:

dispatch_async(dispatch_get_main_queue(), ^{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:[Config refreshInterval].integerValue target:self selector:@selector(methodThatHasABlockCalledMentionedAbove) userInfo:nil repeats:NO];
});

En mitextFieldDidBeginEditing Estoy invalidando mi temporizador así:

dispatch_async(dispatch_get_main_queue(), ^{
        [self.timer invalidate];
        self.timer = nil;
 });

Mi método aún se ejecuta en el temporizador. ¿Cuál es el truco?

Respuestas a la pregunta(1)

Su respuesta a la pregunta