NSFetchedResultsController问题

时间:2011-11-05 23:09:55

标签: ios performance cocoa-touch core-data nsfetchedresultscontroller

我目前正在使用NSFetchedResultController来获取显示的数据。 但是我有两个问题:

1)当我将fetchSizeBatch属性设置为2时,我的应用程序总是崩溃。    fetchSizeBatch实际上是什么意思?我真的不想把它设置为2,我只是玩它并注意到这个bug。

2)我的应用程序当前在滚动UITableView时使用大约25 MB的内存。我假设NSFetchedResultController导致了这一点。 25 MB仍然正常吗?或者这个控制器是否指定了某种设备?

1 个答案:

答案 0 :(得分:0)

两个是核心数据批量大小的极低数字。 According to the documentation,它可能比我更好地解释它,设置批量大小意味着数据将被批量处理;换句话说,Core Data在数据库中查询排序结果,但只将批量大小指定的数量提取到托管对象中。这个的实现 - 这是最重要的部分 - 是NSArray的代理子类,无论何时通过索引,枚举等方式访问每个批处理中的项目。在您的情况下,这意味着Core Data每两个对象往返数据库。对于与UITableView对话的NSFetchedResultsController,您可以看到这是一个多大的问题。

否则,25MB并不是太棒了,但我看到应用程序做得更糟。我会说你很好。