0

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"]);
}
4

1 に答える 1

0

Entry クラスは、@synthetize ではなく @dynamic を使用して title プロパティを認識していますか?

于 2012-05-22T18:41:00.473 に答える