当更改许多行时,使用NSFetchedResultsController禁用UITableView的动画

时间:2011-02-16 16:12:46

标签: iphone ios uitableview core-data nsfetchedresultscontroller

在我的UIView中,我有一个由NSFetchedResultsController(NSFRC)控制的UITableView(UITV)。 UIView在UINavigationController中。

当要加载/显示视图时,我启动一些后台活动,从远程服务器(JSON)获取数据并解析为核心数据。

在解析完成并且已将线程NSManagedObjectContext合并到主上下文中时,将调用NSFRC。

问题是有时很多行被同时插入到Core Data中,很多表单元格被添加,并且实际取出和解析完成后会有很长的延迟,直到显示行为止。

现在我想知道是否有人知道任何解决方案,例如:

  • 将一个微调器连接到某个“获取结果控制器,此时插入所有行”(或其他)通知/委托调用至少告诉用户“某些东西即将出现”?

或者最好的解决方案可能只是在后台提取和处理完成之前不初始化NSFRC?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您可能需要查看NSFetchedResultsControllerDelegate方法,并提供以下文档:http://developer.apple.com/library/ios/#documentation/CoreData/Reference/NSFetchedResultsControllerDelegate_Protocol/Reference/Reference.html

可以使用controllerWillChangeContent:进行预更改的委托方法,使用controllerDidChangeContent发布更改以及使用didChangeSection:didChangeObject进行更改。

我希望它有所帮助! ROG