2012-03-28 11 views
0

。 在appDelegate中,我创建了managedObjectContext等,并将ref传递给更新发生的detailviewcontroller。 我不知道这是否是问题的根源 - 任何人都可以请告知这个问题吗? 谢谢。当我尝试保存更新的managedobject时,更改不会持久保存到sqlite数据库,因此iOS核心数据管理对象更新不会持久保存到sqlite数据库

-(void)saveManagedObject:(id)sender 
{ 
    NSManagedObjectContext *context = [self managedObjectContext]; // this was passed earlier 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"jobDescription = %@", self.jobDescription.text ]; 

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Job" inManagedObjectContext:context]; 
    [fetchRequest setEntity:entity]; 
    [fetchRequest setPredicate:predicate ]; 

    Job *reqJob = [[context executeFetchRequest:fetchRequest error:&error] lastObject]; 

    [reqJob setSummary:self.summary.text]; 

    if (![context save:&error]) { 
     NSLog(@"Error updating %@ - error:%@",self.detailItem.jobDescription, error); 
    } 
} 
+0

实际上你是否需要获取或保存到核心数据中?什么是你的代码中的'Task'类?获取后,将它放入一个数组并检查数组是否有值? – 2012-03-28 14:17:52

+0

嗨R.A.,在应用程序中,当我移动到另一条记录并再次返回时,记录对摘要的更新。但是,当我重新启动应用程序它没有被记录到sqlite。 – stan4th 2012-03-28 14:26:58

+0

什么??我不明白。 – 2012-03-28 14:27:47

回答

0

好的,我已经解决了这个问题,如果有人遇到同样的情况,我会在这里详细解释一下。 事实证明,我没有正确创建Job NSManagedObject类(或者我在某些时候改变了它,使它无法正常工作)。

因此,似乎Core Data可能无法检测到对象中发生了更改,因此没有将任何内容写回数据库。 我通过XCode重新生成了这个managedobject实体的类,一切都很好。

感谢您查看我的帖子R.A. - 对不起,这对你来说有点浪费。

+0

它确定。其实你的问题并不清楚。所以那个时候没法帮你。无论如何,请接受你自己的答案。 – 2012-03-29 04:14:22

相关问题