将nsdate保存到磁盘

时间:2011-04-29 21:24:01

标签: cocoa nsdate nscalendar

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

2 个答案:

答案 0 :(得分:32)

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

没有进行错误检查。做得更好。 ; - )

答案 1 :(得分:2)

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