NSTimer no se detiene con invalidar

Agrego temporizador como este

tim=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(repeatTim) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:tim forMode:NSDefaultRunLoopMode];

tim es propiedad de NSTimer de mi clase.

Entonces lo detengo en el botón de clic como

[[fbt tim] invalidate];
[fbt setTim:nil];

fbt es instancia de mi clase.

si llamo solo invalidar, entonces no se detiene, pero si lo configuro en nil, entonces obtengo EXC_BREAKPOINT

Aquí el código del método repeatTim en selector.

AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
[appDelegate.wbv stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"intal()"]];

traté de llamaren eso yinvalidar en

dispatch_async(dispatch_get_main_queue(), ^{})

Tampoco se detiene el temporizador.

Respuestas a la pregunta(2)

Su respuesta a la pregunta