イベントがトリガーされるたびに、私のアプリはその日付を記録します。
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 バイトかかることに気付きましたが、公式には言及されていません。したがって、ファイル「dates.dat」を解析するために長さとして 223 バイトを使用すると、後で問題が発生するのではないかと心配しています。
値を処理できるように、dates.dat を NSArray に読み込むアイデアはありますか?
前もって感謝します