2011-10-09 54 views
1

我正在使用NSFetchedResultsController,它使用谓词来获取一些托管对象。我始终认为NSFetchedResultsController在对象更改时会更新,即如果我有谓词"box == 3"box更改为2,则不会提取它。何时更新NSFetchedResultsController?

但是,即使我更改了对象并保存了托管对象上下文,我仍然可以通过我的FRC访问该对象。即使删除缓存,这仍然是可能的。

这是正确的行为吗?

回答

0

经过进一步的测试,我认为它是保存到假设FRC没有更新,没有我做的事情。我只拨打-performFetch:一次,但我没有实施该委托。根据该文档的FRC似乎到只有注册变更通知:

如果为已取得的成果控制器的委托, 寄存器从管理对象 方面收到变更通知控制器。

+0

为什么选择投票? – fabian789

2

一个简单的方法例如更新您的表格只是将FRC设置为nil并重新加载。这往往会照顾所有的更新问题,而且效率也很高。 FRC将懒洋洋地重新创建自己并填充桌面。

self.fetchedResultsController = nil; 
[self.tableView reloadData]; 
+0

我在本例中实际上并未将它用于表格视图。 – fabian789

相关问题