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