Por mi vida, no puedo entender por qué este NSTimer no se disparará. aquí está todo el código que aparece relevante (al menos para mí)NSTimer no dispara
- (IBAction)connectClick:(id)sender
{
if (connected)
{
NSLog(@"Disconnecting");
[timer invalidate];
timer = nil;
connected = NO;
[Connect setStringValue:@"Connect"];
NSLog(@"Finished\n");
}
else
{
NSLog(@"Connecting");
timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
//[timer fire]; tested this line. same results
[Connect setStringValue:@"a"];
connected = YES;
NSLog(@"Finished\n");
}
}
- (void)timerFireMethod:(NSTimer*)theTimer
{
NSLog(@"Fireing event");
//[self resetRequest];
//[spinner startAnimation:nil];
//[request startAsynchronous];
}
He leído los documentos de manzana, y otras preguntas, pero no puedo entenderlo. Ni siquiera llama al timerDireMethod:
una vez. He oído que esto podría ser causado por diferentes hilos, pero por lo que puedo decir, no estoy usando múltiples hilos.
Todas las ideas son bienvenidas.
posible duplicado de [NSTimer no disparar] (http://stackoverflow.com/questions/6752234/nstimer-not-firing) – Caleb
¿Hay alguna razón por la que usted está utilizando en lugar de NSEventTrackingRunLoopMode NSDefaultRunLoopMode? – Caleb
Lo siento Es tarde aquí. Me di cuenta de eso e iba a agregar eso a la pregunta. pero sí NSDefaultRunLoopMode funcionó. Disculpa por confundirte. –