如何编辑和保存数据到核心数据

时间:2011-07-31 02:52:28

标签: iphone objective-c xcode core-data

我的数据模型。 Data model

我有3页。

第1页在tableview中显示所有课程。选择课程后,该课程的所有学生将在第2页上看到一个桌面视图。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  {
    Coures *course =[self.fetchedResultsController objectAtIndexPath:indexPath];
    ScoreViewController *scoreView =[[ScoreViewController alloc] initWithNibName:@"ScoreViewController" bundle:nil];
    scoreView.title =course.courseID;
    scoreView.scoreData=course.scores;
    [self.navigationController pushViewController:scoreView animated:YES];
    [scoreView release];
}

第2页显示了一个表格视图,其中列出了特定学生的所有学生。当触摸包含学生的行时,学生的姓名和分数将显示在第3页。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    DetailViewController *detailviewController =[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    NSArray *scoreArray =[self.scoreData allObjects];
    Score *score =(Score *)[scoreArray objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:detailviewController animated:YES];
    detailviewController.rescore =score;
    [detailviewController release];
}

第3页在文本字段中显示学生的姓名和分数。

-(void)viewDidDisappear:(BOOL)animated{

    rescore.score=[NSNumber numberWithDouble:[scoreField.text doubleValue]];
    NSError *error;
    [[rescore managedObjectContext] save:&error];
    [super viewDidDisappear:animated];
}

我想在第三页上编辑学生的姓名和分数,但当我从第3页回到第二页时,新分数不会被保存。

1 个答案:

答案 0 :(得分:1)

您必须为每个对象创建一个类,称为托管对象类。执行此操作后,您只需更改该对象的属性,您的核心数据模型就会更新。