使用核心数据的最佳做法

问题描述 投票:0回答:2

我是否应该具有用于​​读写的不同管理对象上下文? 我应该将MO​​C实施为亲子阅读吗? 编写MOC的最佳实现是什么?

ios objective-c swift core-data swift2
2个回答
0
投票

设置堆栈的方法有很多,每种方法各有利弊。

直到您更熟悉Core Data为止,最简单的操作如下:

创建具有私有队列并发类型的父MOC。 这将是您的作者,因为它将在后台执行。

创建具有主队列并发类型的子MOC。 这将是您主线程上的读者。

如果需要从主线程进行更改,则必须确保保存两个上下文以使其持久化。 最好将所有写操作直接分派给父级进行后台处理。 使用FRC和通知处理程序可以知道何时刷新子级。

PS:我从来没有在我的应用程序中使用这种方法,但是我拥有一个开发良好的核心数据栈,可以随项目一起携带。


0
投票

正如已经指出的,有许多因素决定了执行此操作的方式和原因。 在我看来,其中最重要的是您是否需要支持多线程。 这是一个很好的链接,通过视觉效果解释了父/子范例。 http://code.tutsplus.com/tutorials/core-data-from-scratch-concurrency--cms-22131

我使用SSDataKit帮助进行核心数据设置,然后将其扩展到需要的地方。 在高度并行的应用程序中,我为每个具有关系的NSOperation创建新的MOC:私有队列->主队列->临时子队列(这些操作在后台线程上运行)。 在简单的应用程序中,我使用基本的SSDataKit(父/子)设置,仅此而已。

© www.soinside.com 2019 - 2024. All rights reserved.