25

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

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

我现在的问题是:

  • 哪种方式更快?,我的意思是性能方面,哪一种是最好的?

  • NSFetchedResultsController 是否仅与 UITableViews 一起使用?

  • NSFetchedResultsController 的优缺点是什么。

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

4

1 回答 1

43

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

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

如果您所拥有的只是一个简单的、数据永不更改的部分表,那么 FRC 不会给您带来任何优势。你只需做一次取货,你就完成了。但是,如果数据在 UI 中(用户重新排列、删除或添加)或代码(例如从服务器更新数据)中更改数据,FRC 提供了处理所有持续更改并确保表格准确反映的机制这些变化。

哪种方式更快?,我的意思是性能方面,哪一种是最好的?

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

NSFetchedResultsController 的优缺点是什么。

往上看。

NSFetchedResultsController 是否仅与 UITableViews 一起使用?

是的,它确实只对表格有用。

于 2010-09-17T15:38:17.997 回答