我使用核心数据有一个(部队)到多个(成员)关系。我可以成功添加和删除部队。
一旦部队被创建,当我从桌面视图中点击一个部队时,它会加载一个新的部队成员表。我可以使用正确的部队作为父级成功添加到成员表。使用NSLog,我可以看到添加了成员。但是,在我返回并添加新队伍之前,成员表不会重新加载并且新成员不会保存。似乎上下文实际保存的唯一时间是添加新队伍的时间。当添加新的部队时,所有添加的成员将出现在他们的正确部队之下。完全关闭并重新启动应用程序不会强制保存成员。
我尝试将这两种方法添加到insert方法中:
[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中可以找到的每个示例或建议。我希望有人有新的建议。谢谢!
答案 0 :(得分:0)
从我的评论中
您是否为NSFetchedResultsController
设置了代理?
fetchedController.delegate = self;