¿Cuál es la forma óptima de almacenar un NSDate en NSUserDefaults?

Hay dos formas de almacenar un NSDate en NSUserDefaults que he encontrado.

Opción 1 - setObject: forKey:
// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];

// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];
Opción 2 - timeIntervalSince1970
// Set
NSDate *myDate = [NSDate date];
NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"];

// Get
NSTimeInterval myDateTimeInterval = [[NSUserDefaults standardUserDefaults] floatForKey:@"myDateKey"];
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:myDateTimeInterval];
Pros y contras

Opción 1

Esto parece ser compacto y lógico. Sin embargo, me preocupa que esto vaya mal debido aErrores del formateador de fechas.

opcion 2

Esto parece ser torpe. Tampoco estoy seguro de la precisión de la misma: en una prueba que hice, cuando recuperé la fecha anterior, faltaban 48 segundos, a pesar de que los Apple Docs dicen que NSTimeInterval tiene una "precisión por debajo del segundo".

Requerimientos

Cualquiera que sea el método que elija, debe ser:

Preciso dentro de un segundo.

Legible y fiable.

Mi pregunta

¿Es la inexactitud con la Opción 2 porque estoy haciendo algo mal?

¿Cuál de estas dos opciones usaría?

¿Hay otra opción que no conozco?

¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta