2010-12-21 67 views
0

我正在开发一个使用核心数据的iPad应用程序,并希望有人能澄清一些关于核心数据。什么是使用核心数据的最有效方式?

现在,我通过在viewDidLoad中为我的所有数据提取请求来填充我的表格。我宁愿在我的tableView:cellForRowAtIndexPath:中提出个别提取请求。谁能告诉我哪个更有效率,为什么?换句话说,与一个大的请求相比,提出大量小的请求效率低得多吗?

回答

4

您的提取请求有一个名为fetchBatchSize的属性,它告诉您的提取请求仅用于批量提取数据。这意味着对于20个批量大小,只有前20个项目被加载到内存中。当用户滚动过去20时,另外20个项目会自动加载,等等。

另外,Apple发布了一个NSFetchedResultsController类,该类设计用于管理数据的表示和编辑(当然,它最适合于表视图,但可以与其他类型的视图控制器一起使用)。它为你提供了很多其他优化(比如批量提取,内存管理等),因此它提供了比你自己创建,启动和管理你的提取请求更好的性能。

+0

对于`NSFetchedResultsController`为+1,一个低估的宝石。 – 2010-12-22 00:07:25

相关问题