相关疑难解决方法(0)

使用父/子上下文时,批处理大小不起作用

我已经能够在我的应用程序上确认这一点,并且我创建了一个快速示例应用程序来确认这一点.这是设置:

您有两个托管对象上下文:

masterMOC: NSPrivateQueueConcurrencyType, tied to persistent store coordinator
mainMOC: NSMainQueueConcurrencyType, child of masterMOC, NOT tied to any store coordinator
Run Code Online (Sandbox Code Playgroud)

此设置的灵感来自WWDC视频,它建议我们可以通过将其设置masterMOC为专用队列并将其绑定到持久性存储来保存后台线程.如果你设置了一个NSFetchedResultsController使用mainMOC(并且它必须是mainMOC那个与UI绑定的那个),并设置a fetchBatchSize,则忽略批量大小并且所有实体立即出现故障.我启用了SQLite调试注释,当滚动数千行(批量大小为20)时,没有任何错误被触发.

如果我进行一个简单的调整,即将持久性存储协调器绑定到mainMOC并使其成为根上下文(即,它不再是master的子节点),那么批量大小完美地工作,并且当我滚动数千行时,几个故障被解雇了.

这是预期的行为吗?我错过了什么吗?

您可以在此处下载示例项目

iphone core-data objective-c ios

10
推荐指数
1
解决办法
1931
查看次数

标签 统计

core-data ×1

ios ×1

iphone ×1

objective-c ×1