Core data 如何暂停NSFetchedResultsController的工作?

Core data 如何暂停NSFetchedResultsController的工作?,core-data,ios4,nsfetchedresultscontroller,modalviewcontroller,Core Data,Ios4,Nsfetchedresultscontroller,Modalviewcontroller,我有一个由NSFetchedResultsController提供的UITableViewController。从中,用户可以调用一个模态ViewController,在其中他或她可以输入新数据。开始时,我创建一个临时对象,如下所示: newPtr = [[Entry alloc] initWithEntity:[NSEntityDescription entityForName:@"Entry" inManagedObjectContext:self.nmocontext] insertInt

我有一个由NSFetchedResultsController提供的UITableViewController。从中,用户可以调用一个模态ViewController,在其中他或她可以输入新数据。开始时,我创建一个临时对象,如下所示:

newPtr = [[Entry alloc] initWithEntity:[NSEntityDescription
entityForName:@"Entry" inManagedObjectContext:self.nmocontext]
insertIntoManagedObjectContext:self.nmocontext];
当用户做出选择时,将设置此“临时”对象newPtr的属性

问题在于,基本UITableViewController在模态ViewController可见时保持活动状态。在某些情况下,当它意识到还没有设置newPtr的强制属性时,它似乎会惊慌失措(导致崩溃)


如何阻止NSFetchedResultsController查看我的托管对象上下文,直到模态ViewController被取消?

我自己还没有测试过这一点,但一种可能的方法是实现
视图将出现
视图将消失
,并将fetchedResultsController委托设置为
self
on将出现,而
nil
on将消失


您可以创建一个NSObject,在编辑窗口中镜像NSManagedObject的属性。一旦用户编辑完属性(并且您运行了相应的验证规则),您就可以将它们传递回NSManagedObject实例,让fetchedResultsController完成其工作。

核心数据支持“嵌套”托管对象上下文,这允许灵活的体系结构,使其易于支持独立的,可取消,更改集。通过子上下文,您可以允许用户对托管对象进行一组更改,这些更改可以作为单个事务整体提交给父对象(并最终保存到存储),也可以丢弃。如果应用程序的所有部分只是从(比如)应用程序委托中检索相同的上下文,那么这种行为就很难或不可能得到支持。

谢谢!我认为这是一个非常有趣的想法。我最后做的(因为堆栈溢出下降了几个小时)是给newPtr一些伪属性以满足fetchedResultsController。这很有效。。。