每次触发事件时,我的应用都会记录其日期:
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filename = [path stringByAppendingPathComponent:@"dates.dat"];
if (![[NSFileManager defaultManager] fileExistsAtPath:filename]) {
[[NSFileManager defaultManager] createFileAtPath:filename
contents:nil
attributes:nil];
}
NSFileHandle *wHandle = [NSFileHandle fileHandleForWritingAtPath:filename];
[wHandle seekToEndOfFile];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:[NSDate date]];
[wHandle writeData:data];
[wHandle closeFile];
我成功地记录了事件的日期。但现在我在读回它们时遇到了麻烦。我试过了,但应用程序崩溃了:
NSData *restore = [NSData dataWithContentsOfFile:filename];
NSArray *date1 = [NSKeyedUnarchiver unarchiveObjectWithData:restore]; // crash here!
我注意到每次 NSDate 写入需要 223 个字节,但官方并未提及。所以我担心使用223字节作为长度来解析文件“dates.dat”会导致以后出现问题。
您是否有任何想法将 dates.dat 读入 NSArray 以便我可以继续其值?
提前致谢