为什么要使用NSFetchedResultsController?

时间:2010-09-17 10:32:24

标签: iphone core-data nsfetchedresultscontroller nsfetchrequest

核心数据在NSManagedObjectContext类中提供了“executeFetchRequest”方法,我们可以使用该方法从表中获取数据并以任何方式使用它。

现在有另一种方法可以使用NSFetchedResultsController并将其提供给UITableView以从表中获取和数据。

我现在的问题是:

  • 哪种方式更快?,我的意思是表现明智,哪一个最好?

  • NSFetchedResultsController是否仅用于UITableViews?

  • NSFetchedResultsController的优点和缺点是什么。

  • 最后一点,“为什么我们使用NSFetchedResultsController”,是什么让它比任何其他方式更好。

1 个答案:

答案 0 :(得分:40)

  

最后一点,“为什么我们使用   NSFetchedResultsController“,什么   事情使它比任何其他更好   方式。

FRC类旨在自动处理与为表提供复杂和动态数据相关的所有开销。

如果您拥有的只是一个简单的,一个表格,其数据永远不会改变,那么FRC就没有任何优势。你只需要一次抓取就可以了。但是,如果在UI(用户重新排列,删除或添加)或通过代码(例如,从服务器更新数据)中更改数据,FRC提供处理所有不断变化并确保表准确反映的机制那些变化。

  

哪种方式更快?,我的意思是   表现明智,哪一个是   最好?

使用fetch或FRC没有重大的性能差异,因为它们都使用相同的获取机制从持久性存储中获取数据。如果您有复杂的动态数据,那么使用FRC比手动复制其功能更快。

  

有什么优点和缺点   NSFetchedResultsController。

见上文。

  

仅NSFetchedResultsController   与UITableViews一起使用?

是的,它实际上只对表有用。