Estoy realmente frustrado ahora, busqué en Google todo el Internet, tropecé con SO y todavía no encontré una solución.NSTimer no llama al método
Estoy tratando de implementar un NSTimer, pero no se llama al método que he definido. (los segundos están configurados correctamente, lo verificaron con puntos de interrupción). Aquí está el código:
- (void) setTimerForAlarm:(Alarm *)alarm {
NSTimeInterval seconds = [[alarm alarmDate] timeIntervalSinceNow];
theTimer = [NSTimer timerWithTimeInterval:seconds
target:self
selector:@selector(showAlarm:)
userInfo:alarm repeats:NO];
}
- (void) showAlarm:(Alarm *)alarm {
NSLog(@"Alarm: %@", [alarm alarmText]);
}
El objeto "theTimer" se deined con @property:
@interface FooAppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate> {
@private
NSTimer *theTimer;
}
@property (nonatomic, retain) NSTimer *theTimer;
- (void) setTimerForAlarm:(Alarm *)alarm;
- (void) showAlarm:(Alarm *)alarm;
¿Qué estoy haciendo mal?
La firma del método para 'showAlarm: (Alarma *) alarma' debe ser' showAlarm: (NSTimer *) timer' en su lugar. Luego obtendría el objeto Alarm con 'Alarm * alarm = [timer userInfo]'. – 0xced
Gracias, ya lo tengo ;-) – tamasgal