从Tabs中删除NSFetchedResultsControllers中的对象而不保存

时间:2012-01-04 23:26:36

标签: iphone objective-c ios nsfetchedresultscontroller

我设置了一个有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代理人那里分享上下文的问题,但我不确定我还有其他选择......

请帮助!

1 个答案:

答案 0 :(得分:0)

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