Salvar nsdate no disco
-
27-10-2019 - |
Pergunta
Eu olhei para a função timeIntervalSinceReferenceDate
de NSDate
.Posso usar esta função para armazenar o intervalo no disco e, em seguida, retorná-lo para NSDate
com o mesmo valor do original?Tenho medo de que a referência ou intervalo possa variar entre as máquinas e aparecer de forma diferente em outro computador?
Solução
NSDate pode ser arquivado como uma instância NSData e NSData pode ser facilmente gravado / lido do 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];
Nenhuma verificação de erro é feita.Faça melhor do que isso.;-)
Outras dicas
Como alternativa, se você deseja armazenar o resultado de timeIntervalSinceReferenceDate
, pode armazená-lo em um NSNumber como um duplo e salvá-lo no disco usando o método NSKeyedArchiver de Joshua.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow