我使用核心数据建立了一对多(成员)的关系。我可以成功添加和删除部队。
创建部队后,当我从表格视图中单击部队时,它会加载该部队成员的新表。我可以成功地将正确的部队添加到成员表中作为父级。使用 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 中找到的所有示例或建议。我希望有人有新的建议。谢谢!