Pregunta

He examinado la función timeIntervalSinceReferenceDate de NSDate.¿Puedo usar esta función para almacenar el intervalo en el disco y luego devolverlo a NSDate con el mismo valor que el original?¿Me preocupa que la referencia o el intervalo pueda variar entre máquinas y aparecer de manera diferente en otra computadora?

¿Fue útil?

Solución

NSDate se puede archivar como una instancia de NSData y NSData se puede escribir / leer fácilmente desde el disco.

// Create and store it
NSDate * date = [NSDate date];
NSData * dateData = [NSKeyedArchiver archivedDataWithRootObject:date];
[dateData writeToFile:@"/Some/path/to/file.dat" atomically:NO];

// Now bring it back
NSData * restoredDateData = [NSData dataWithContentsOfFile:@"/Some/path/to/file.dat"];
NSDate * restoredDate = [NSKeyedUnarchiver unarchiveObjectWithData:restoredDateData];

No se realiza ninguna comprobación de errores.Hazlo mejor que eso.;-)

Otros consejos

Alternativamente, si desea almacenar el resultado de timeIntervalSinceReferenceDate, puede almacenarlo en un NSNumber como un doble y luego guardarlo en el disco usando el método NSKeyedArchiver de Joshua.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top