获取最新的对象添加到NSFetchedResultsController?

时间:2010-08-23 18:36:14

标签: objective-c ios nsfetchedresultscontroller

甚至不确定这是否可行,但这是用例:

我有一个使用NSFetchedResultsController来管理列表的RootView表视图。我点按一个添加按钮,其中显示AdditionViewControllerAdditionViewController使用单独的managedObjectContext来创建新对象。在保存时,对象将传递回RootView,新对象(在新managedObjectContext中)将合并到主managedObjectContext中。然后解除AdditionViewController,揭示RootView。

喜欢做的事情是在合并后加载新对象推送我的DetailViewController,这样当AdditionViewController被解除时,全部细节观点揭晓。

如何获取刚刚添加到fetchedResultsController的对象,以便将其传递给DetailViewController

- UPDATE -

仍然没有。让我试着解释一下我需要做些什么(希望如此)。如果这仍然令人困惑,请提出问题。我很难想到如何描述这个问题。

我完全清楚如何在保存新对象时按下模态添加视图下方的详细信息视图。问题是我保存的对象是它自己的fetchedReaultsController。我将这个frc合并到主fetchedResultsController中,所以如果我尝试将对象发送到detailview,我会崩溃,因为在模态添加视图时对象已经失效(由于合并)被解雇,详情视图调用viewWillAppear。这就是我想要解决的问题。我怎样才能找出刚刚添加到主fetchedResultsController的对象以便将它发送到detailViewController?

- UPDATE -

为任何可以告诉我如何从提取的结果控制器中检索最近添加的对象的人添加赏金。或者如何在不知道它的indexPath的情况下从获取的结果控制器中检索特定对象。

2 个答案:

答案 0 :(得分:0)

以下是我在一个几乎完全相同的用例中的表现:

  1. 显示AdditionViewController时,用户可以选择保存他们创建的项目或取消新项目对话框。我将用户的选择传达回RootViewController
  2. 如果用户已取消,请从您的上下文中删除您创建的对象。
  3. 如果用户选择保存,请保存上下文并显示DetailViewController

答案 1 :(得分:0)

对于记录,答案是在保存上下文之后获取addManagedObjectContext中对象的对象ID(因为保存后ID更改),并在合并后将该ID传递给主managedObjectContext。完整的代码如下(如果有人有更简单的方法,请告诉我)

detailViewController.object = (customObject *)[[fetchedResultsController managedObjectContext] objectWithID:[[[[addingManagedObjectContext registeredObjects] allObjects] objectAtIndex:0] objectID]];

感谢frenetisch applaudierend让我指向了正确的方向。