从NSFetchedResultsControllers跨tab删除对象,不保存



我设置了一个UITableViewController,有2个视图,我得到每个视图加载不同的数据安置在同一个核心数据模型。但现在,当我试图执行删除的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];
    }
  }
} 

在我添加第二个视图控制器之前,这个工作得很好,在应用程序委托中,我为标签视图使用的两个视图控制器设置了NSManagedObjectContext,然后每个视图控制器都使用相同的NSEntityDescription加载,并使用相同的代码来删除。

我的猜测是有一个问题,从应用程序委托或其他东西共享上下文,但我不确定我有什么其他的选择....

请帮忙!

在两个只在主线程上与它交互的对象之间共享NSManagedObjectContext不应该有问题。确保每个获取的结果控制器都有其delegate属性设置为其各自的视图控制器,并且您充分处理controllerDidChangeContent:(这可以像在适当的表视图上调用reloadData一样简单)。

最新更新