0

关于以最有效的方式使用 coredata,我或多或少有一个普遍的问题。

我尝试了两种不同的方法来管理我的项目视图中显示的数据。

方法 1:当视图被加载时,我执行所有核心数据获取并将结果存储在一个数组中,然后视图从数组中检索显示的对象。(即:objectAtIndex:...)

方法 2:viewcontroller 本身让我的数据处理类在旅途中执行获取,只要需要特定的 coredata 对象,它就会被获取。

在我当前的项目中,这涉及大约 200-500 个对象,需要根据它们的属性在表格视图中进行排序和显示。

无论我首先加载所有对象还是批量加载它们(具有正确属性),获取方法都是相同的。

区别主要在于 cellForRow 方法,我必须决定是从数组中选择对象还是直接从 coredata 中选择对象。

两种方法都可以正常工作,我现在并没有真正看到任何性能差异,但我担心随着项目的扩展和更多数据的一种或另一种方式可能会变慢。

你认为更好的方法是什么?

4

1 回答 1

2

对于较大的数据集,使用NSFetchedResultsController控制器可能会在峰值内存占用方面具有优势,也就是说,可能经过优化以根据表大小从持久存储中获取适量的数据。

通过NSFetchedResultsController您可以控制获取批量大小,您可以根据正在获取的托管对象的大小和数量等调整性能。

于 2012-03-20T19:40:52.277 回答