9

我看过 的timeIntervalSinceReferenceDate功能NSDate。我可以使用此函数将间隔存储到磁盘,然后将其返回到NSDate与原始值相同的值吗?我担心机器之间的参考或间隔可能会有所不同,并且在另一台计算机上会有所不同?

4

2 回答 2

34

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

不进行错误检查。做得比那更好。;-)

于 2011-04-29T22:01:57.477 回答
2

或者,如果你想存储你的结果,timeIntervalSinceReferenceDate你可以将它作为双精度存储在 NSNumber 中,然后使用 Joshua 的 NSKeyedArchiver 方法将其保存到磁盘。

于 2011-04-30T09:52:52.237 回答