0

ユーザー インターフェイスを高速化するためにいくつかの 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 コーディングに準拠していませんか?

ありがとう、ファブリツィオ

4

1 に答える 1

0

無関係な AppCache ディレクトリを追加する例から取った本の例です。

于 2012-10-08T18:18:35.007 に答える