0

我使用核心数据建立了一对多(成员)的关系。我可以成功添加和删除部队。

创建部队后,当我从表格视图中单击部队时,它会加载该部队成员的新表。我可以成功地将正确的部队添加到成员表中作为父级。使用 NSLog,我可以看到该成员已添加。但是,成员表不会重新加载,新成员不会保存,直到我返回并添加新部队。似乎上下文实际保存的唯一时间是添加新部队时。添加新部队时,所有添加的成员都会出现在其正确部队下。完全关闭并重新启动应用程序不会强制保存成员。

我尝试将这两个都添加到插入方法中:

[self.managedObjectContext save:nil];
[self.managedObjectContext refreshObject:newManagedObject mergeChanges:YES];

我已将此添加到 controllerDidChangeContent

 [self.managedObjectContext save:nil];
 [self.tableView reloadData];
 [[NSNotificationCenter defaultCenter] postNotificationName:@"ContextDidSave" object:self.managedObjectContext];

我已将此添加到 contextDidSave 方法中:

[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];

我已将此添加到 viewWillAppear 方法中:

   [self.tableView reloadData];

这对于 viewDidLoad 方法:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(contextDidSave:)
                                             name:@"ContextDidSave" object:nil];

我确信有一些东西丢失或没有保存的原因。我也使用了所有的代表。

<NSFetchedResultsControllerDelegate, UINavigationControllerDelegate, UITableViewDelegate, UITableViewDataSource>

我已经尝试了可以​​在 stackoverflow 中找到的所有示例或建议。我希望有人有新的建议。谢谢!

4

1 回答 1

0

从我的评论

您是否为您设置了委托NSFetchedResultsController

fetchedController.delegate = self;

于 2013-01-06T15:02:12.583 回答