Dla mojego życia, nie mogę się domyślić, dlaczego ten NSTimer nie będzie strzelał. tutaj jest cały kod, który pojawia się istotne (przynajmniej dla mnie)NSTimer nie strzela
- (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];
}
Czytałem docs Apple oraz inne pytania, ale nie mogę zrozumieć. Nawet nie nazywa się timerDireMethod:
. Słyszałem, że może to być spowodowane przez różne wątki, ale o ile mogę powiedzieć, nie używam wielu wątków.
Wszystkie pomysły mile widziane.
możliwe duplikat [NSTimer nie wypalanie] (http://stackoverflow.com/questions/6752234/nstimer-not-firing) – Caleb
Czy jest jakiś powód, dla którego używasz NSEventTrackingRunLoopMode zamiast NSDefaultRunLoopMode? – Caleb
Przepraszam za spóźnienie. Właśnie to zauważyłem i zamierzałem dodać to do pytania. ale tak działa NSDefaultRunLoopMode. Przepraszam za zamieszanie. –