0

我正在开发一个需要多次异步下载并将其内容保存到核心数据实体的应用程序。其中一个下载量很大,并注意到在创建/写入托管对象上下文时 UI 被阻止。我的研究使我阅读了并发核心数据设置,并开始实施其中之一。但是我遇到了问题并花费了大量时间来纠正问题。

在继续之前,我正在考虑简单地使用NSPrivateQueueConcurrencyType. 我读到的都没有提到这样做。这样我可以选择在后台执行 MOC 操作,或者像往常一样使用主线程,同时维护一个 MOC。

这是一个好方法吗?如果不是,它有什么问题?我怀疑这是正确的方法,因为如果是,NSPrivateQueueConcurrencyType则占主导地位NSMainQueueConcurrencyType,并且没有理由采用后者。

4

1 回答 1

2

NSPrivateQueueConcurrencyType将MOC 用于后台任务并没有错。

但是你可能仍然需要一个NSMainQueueConcurrencyTypeMOC。从文档中:

上下文与主队列相关联,因此与应用程序的事件循环相关联,但在其他方面类似于私有的基于队列的上下文。您将此队列类型用于链接到控制器和 UI 对象的上下文,这些对象只需要在主线程上使用。

例如,对于获取的结果控制器,您将使用 NSMainQueueConcurrencyTypeMOC。

于 2013-07-06T21:06:14.260 回答