Сохранить nsdate на диск - PullRequest
7 голосов
/ 30 апреля 2011

Я посмотрел на timeIntervalSinceReferenceDate функцию NSDate. Могу ли я использовать эту функцию для сохранения интервала на диске, а затем вернуть его в NSDate с тем же значением, что и в оригинале? Я опасаюсь, что эталон или интервал могут отличаться в зависимости от компьютера и по-разному на другом компьютере?

Ответы [ 2 ]

32 голосов
/ 30 апреля 2011

NSDate можно заархивировать как экземпляр NSData, а NSData можно легко записать / прочитать с диска.

// 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];

Проверка ошибок не производится.Делай лучше, чем это.; -)

2 голосов
/ 30 апреля 2011

В качестве альтернативы, если вы хотите сохранить результат timeIntervalSinceReferenceDate, вы можете сохранить его в NSNumber как двойное значение, а затем сохранить его на диск, используя метод Джошуа NSKeyedArchiver.

...