我正在完成核心数据教程,它建议尝试转换为使用NSFetchedResultsController。所以我得到它以便我可以查询现有数据,但是当我在开头添加一行时,tableView:cellForRowAtIndexPath调用NSFetchedResultsController.objectAtIndexPath,但仍然返回旧的第0个对象而不是新的第0个对象。我需要做些什么来清理这些数据吗?
答案 0 :(得分:2)
还没有人回答,所以我会加上我的猜测。看起来this link可能是相关的。有人建议,调用这两种方法中的任何一种都应该得到更新:
-[NSManagedObjectContext processPendingChanges]
-[NSManagedObjectContext save]
答案 1 :(得分:2)
Naaf提供的链接中有一条线索。事实证明,在执行保存之后,我需要再次调用 - [NSFetchedResultsController performFetch]。
答案 2 :(得分:2)
您是否将视图控制器设置为获取结果控制器的委托并实现了NSFetchedResultsControllerDelegate protocol?如果是这样,您不必再次执行获取,获取的结果控制器将调用委托方法以响应更改。
(请注意NSFetchedResultsController documentation关于表视图数据源方法实现的注意事项。)