Core Data を使用すると、オブジェクトをメモリに保存およびフェッチできます。ただし、(シミュレーターで) アプリを再起動して結果をフェッチすると、オブジェクトはフェッチされますが、すべての属性は nil です。appdelegate にすべてのプロトコル メソッドを含め、managedObjectContext を次のように初期化しました。
managedObjectContext = [自己 managedObjectContext];
in - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
これが私がログに記録しているものです...
正: 結果ログの取得 (アプリの再起動なし) --> 名前: 新規エントリ!!!!
正しくない: 結果ログの取得 (アプリの再起動) --> 名前: (null) - しかし、オブジェクトはまだ persistantStore に存在します
--
//Save entry
Entry *entry = (Entry *)[NSEntityDescription insertNewObjectForEntityForName:@"Entries" inManagedObjectContext:managedObjectContext];
[entry setTitle:@"new entry!!!!"];
NSError *error;
if(![managedObjectContext save:&error]){
NSLog(@"SAVE ERROR!!!");
}
//Fetch entry
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entries" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *info in fetchedObjects) {
NSLog(@"Name: %@", [info valueForKey:@"title"]);
}