如果仅使用MOC树,则会获取内存中持久性存储

时间:2016-01-26 20:33:57

标签: ios core-data persistence

想象一下,存在内存持久存储。 想象一下,有一棵ManagedObjectContext树,其根基于这个商店。

想象一下,我想创建一个这个MOC树的新“叶子”,并在非主私有叶子的MOC队列中调用它的获取请求。

  • 在这种情况下,是否会在内存中持久存储? (1)
  • 或者只能从MOC树获取对象,因为它们已经在那里了? (2)

如果(1),在任何情况下(1)的结果可能与(2)的结果不同(例如,瞬态属性值的丢失)?

如果(2)从未发生过,这是否意味着对于每个新的这样的获取请求,我将丢失瞬态属性的值?

1 个答案:

答案 0 :(得分:0)

(1)是的。必须从某个地方获取数据。

(2)对象不在"已经存在"。

这其实很简单。想象一下具有SQLite持久性存储的普通Core Data堆栈。与内存存储的唯一区别是SQLite存储被内存存储替换。这就是它的全部内容。只要触摸了SQLite存储 ,就会触及内存存储。

因此,无论持久性存储的类型如何,您将在具有不同数据状态的不同线程上获得完全相同的托管对象上下文场景。