Error EXC_BAD_ACCESS para -timeIntervalSinceNow

Esperando que alguien pueda ayudar con esto. Sigo obteniendo un error de acceso incorrecto al intentar usar el método -timeIntervalSinceNow . Tengo una variable en esta class llamada NSDate *startDate y he agregado @property (nonatomic, retain) NSDate *startDate;

startDate se usa en el código aquí:

  startDate = [NSDate date]; updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updatePlaybackPosition:) userInfo:nil repeats:YES]; } 

}

 - (void)updatePlaybackPosition:(NSTimer *)timer { NSTimeInterval interval = [startDate timeIntervalSinceNow]; 

Cuando el progtwig alcanza [startDate timeIntervalSinceNow] da un error de acceso incorrecto. De las otras publicaciones que leí sobre este tema, la respuesta parece tener algo que ver con la retención de la date. Entonces, no estoy seguro de qué me estoy perdiendo. ¡Cualquier ayuda sería muy apreciada!

Su NSDate se lanzó automáticamente antes de que se NSDate el timer. actualizado: asegúrese de usar la propiedad que declaró en lugar de la variable de instancia mediante el uso de self. . Eso se encargará de retenerlo adecuadamente.

 self.startDate = [NSDate date]; 

y entonces

 - (void)updatePlaybackPosition:(NSTimer *)timer { NSTimeInterval interval = [self.startDate timeIntervalSinceNow]; 

De hecho, descubrí la respuesta a esto, al final. Parece que es mejor usar

 -timeIntervalSinceDate:[NSDate date] 

en lugar de usar -timeIntervalSinceNow. Básicamente hace lo mismo, pero por algún motivo, timeIntervalSinceNow da un error de acceso erróneo cada vez, pero el método anterior funciona bien.

[NSDate date] devuelve un NSDate NSDate . Si desea usar ese valor fuera del método en el que se le devolvió, debe retain (y release cuando haya terminado con él).