【发布时间】:2011-04-29 21:24:00
【问题描述】:
我查看了NSDate 的timeIntervalSinceReferenceDate 函数。我可以使用此函数将间隔存储到磁盘,然后将其返回到NSDate,并与原始值相同吗?我担心参考或间隔可能因机器而异,并且在另一台计算机上出现不同?
【问题讨论】:
标签: cocoa nsdate nscalendar
我查看了NSDate 的timeIntervalSinceReferenceDate 函数。我可以使用此函数将间隔存储到磁盘,然后将其返回到NSDate,并与原始值相同吗?我担心参考或间隔可能因机器而异,并且在另一台计算机上出现不同?
【问题讨论】:
标签: cocoa nsdate nscalendar
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];
没有进行错误检查。做得比那更好。 ;-)
【讨论】:
或者,如果您想存储 timeIntervalSinceReferenceDate 的结果,您可以将其作为双精度值存储在 NSNumber 中,然后使用 Joshua 的 NSKeyedArchiver 方法将其保存到磁盘。
【讨论】: