NSDate オブジェクトがあります
NSDate* time = [NSDate date];
次を使用して NSKeyedArchiver を使用して保存しようとしています
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *saveFile = [[paths objectAtIndex:0] stringByAppendingPathComponent: @"GameData.dat"];
NSMutableData *gameData = [NSMutableData data];
NSKeyedArchiver *encoder = [[NSKeyedArchiver alloc] initForWritingWithMutableData: gameData];
[encoder encodeObject: time forKey: @"time"];
[encoder finishEncoding];
[gameData writeToFile:saveFile atomically:YES];
そして、次を使用してロードします
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *file = [[paths objectAtIndex:0] stringByAppendingPathComponent: @"GameData.dat"];
Boolean saveFileExists = [[NSFileManager defaultManager] fileExistsAtPath:file];
NSMutableData *gameData = [NSData dataWithContentsOfFile:file];
NSKeyedUnarchiver *decoder [[NSKeyedUnarchiver alloc] initForReadingWithData:gameData];
time = [decoder decodeObjectForKey: @"time"];
このメソッドは、オブジェクト以外のすべてのデータ型に対して正常に機能しますが、オブジェクトに対しては常に nil を返します。NSKeyedArchiver のアップルのドキュメントを読んだところ、正しく行う必要があるように見えますが、いつものように、明らかな何かが欠けている可能性があります。どんな助けでも大歓迎です。