表更新了新内容,但Core Data没有

时间:2013-08-09 10:47:02

标签: ios objective-c cocoa-touch

我拥有所有entities的表格视图,当选择一个时,它会显示detail view。在detail view中有一个编辑barbuttonitem。选择后,将运行以下代码。表视图在viewdidappear上重新加载,并检测名字的变化,但当我关闭模拟器并再次打开它时,它会显示以前的值。我错过了什么吗?

-(void)doneEditing{
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    _managedObjectContext = [appDelegate managedObjectContext];
    NSFetchRequest *request = [[NSFetchRequest alloc] init];

    [request setEntity:[NSEntityDescription entityForName:@"Athlete" inManagedObjectContext:_managedObjectContext]];
    NSError *error = nil;
    NSArray *results = [_managedObjectContext executeFetchRequest:request error:&error];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"first == %@", _athleteFirst];
    [request setPredicate:predicate];

    Athlete *currentAthlete = [results objectAtIndex:0];
    currentAthlete.first = _firstDetailTextField.text;

    [self.navigationItem setRightBarButtonItem:nil animated:YES];
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];
    UIBarButtonItem *allAthletesButton=[[UIBarButtonItem alloc] initWithTitle:@"All Athletes" style:UIBarButtonItemStylePlain target:self action:@selector(popACapInYoViewController)];
    UIBarButtonItem *editButton=[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleDone target:self action:@selector(editAthlete)];
    [self.navigationItem setRightBarButtonItem:editButton animated:YES];
    [self.navigationItem setLeftBarButtonItem:allAthletesButton animated:YES];
    [self.view endEditing:YES];
}

1 个答案:

答案 0 :(得分:1)

您必须保存托管对象上下文,以便将更改写入持久性存储,从而永久保存:

NSError *error;
BOOL success = [context save:&error];
if (!success) {
    NSLog(@"could not save: %@", [error localizedDescription]);
}
相关问题