iOS核心数据持久性重启应用程序后

时间:2012-05-22 17:34:49

标签: core-data ios5 persistence

使用Core Data,我可以在内存中保存和获取对象;但是,当我重新启动我的应用程序(在模拟器中)并获取结果时,将获取该对象,但所有属性都为零。我已经在我的appdelegate中包含了所有协议方法,并且已经初始化了我的managedObjectContext:

managedObjectContext = [self managedObjectContext];

in - (BOOL)应用程序:(UIApplication *)应用程序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"]);
}

1 个答案:

答案 0 :(得分:0)

你确定你的Entry类使用@dynamic而不是@synthetize来实现title属性吗?