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?

Foi útil?

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
scroll top