Qual é a melhor maneira de armazenar um NSDate em NSUserDefaults?

Há duas maneiras de armazenar um NSDate em NSUserDefaults que eu encontrei.

Opção 1 - setObject: forKey:
// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];

// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];
Opção 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];
Prós e contras

Opção 1

Isso parece ser compacto e lógico. No entanto, tenho preocupações sobre isso dar errado por causa deErros de formatação de data.

opção 2

Isso parece ser desajeitado. Eu também não tenho certeza da precisão disso - em um teste que fiz, quando recuperei a data de volta, saí por 48 segundos, apesar do Apple Docs dizer que o NSTimeInterval tem "precisão de subsegundos".

Requisitos

Qualquer método que eu escolher, deve ser:

Preciso para dentro de um segundo.

Legível e confiável.

Minha pergunta

É a imprecisão com a Opção 2 porque estou fazendo algo errado?

Qual dessas duas opções você usaria?

Existe outra opção que não conheço?

Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion