我设置了一个有2个视图的UITableViewController,我得到了每个视图,以加载同一核心数据模型中的不同数据。但是现在当我尝试在2个表中的一个表中执行删除时,它似乎没有保存它。代码是:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
NSManagedObject* itemToDelete =
[self.fetchedResultsController objectAtIndexPath:indexPath];
[self.context deleteObject:itemToDelete];
}
}
}
这个工作正常,直到我添加了第二个视图控制器,在app委托我为选项卡视图使用的两个视图控制器设置NSManagedObjectContext,然后使用受尊重的NSEntityDescription加载相同的代码并使用相同的代码删除。
我的猜测是从app代理人那里分享上下文的问题,但我不确定我还有其他选择......
请帮助!
答案 0 :(得分:0)
在两个只在主线程上与它交互的对象之间共享NSManagedObjectContext
应该没有问题。确保每个提取的结果控制器都将delegate
属性设置为其各自的视图控制器,并且您已经充分处理controllerDidChangeContent:
(这可以像调用reloadData
一样简单适当的表格视图)。