2012-03-28 35 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

相關問題