ユーザー インターフェイスを高速化するためにいくつかの https 要求の結果をキャッシュしたいので、データを applicationWillResignActive: にキャッシュし、didFinishLaunchingWithOptions で復元したいと考えました。そのために、次のコード スニペットを使用しています。
NSString* cachesDirectory=[paths objectAtIndex:0];
NSString* archivePath=[cachesDirectory stringByAppendingPathComponent:@"AppCache/Paline.archive"];
NSLog(@"archivePath=%@ paline=%@", archivePath, detailViewController.palineArray);
BOOL success=[NSKeyedArchiver archiveRootObject:detailViewController.palineArray toFile:archivePath];
NSLog(@"%@",success?@"success": @"failure");
これは失敗し、復元時に次のように nil を返します。
NSMutableArray* cachedItems=[NSKeyedUnarchiver unarchiveObjectWithFile:archivePath];
NSLog(@"archivePath=%@ cache=%@", archivePath, cachedItems);
palineArray は、前の NSLog で示されているようにシリアル化された場合、値を持つ NSMutableArray です。どうなり得るか?NSMutableArray コーディングに準拠していませんか?
ありがとう、ファブリツィオ