iOS中的多个持久性存储协调器

sre*_*dev 0 core-data objective-c ios

我想澄清一下iOS中的多个持久性商店协调员.多个持久性存储协调器是否意味着多个数据库实例?这意味着sqlite的不同实例在sqlite数据库的不同实例中具有不同的表.如果可能,那么在什么情况下,我们必须实现一个例子.任何人都可以帮助澄清这一点.

Swi*_*ect 7

从文档:

持久性存储协调器将持久对象存储与托管对象模型相关联

https://developer.apple.com/library/ios/documentation/DataManagement/Devpedia-CoreData/Art/advanced_persistent_stack.jpg

用简单的英语,对于合理的人来说,有一些简化:

  • 托管对象模型描述了实体是什么,以及它们彼此之间的关系(如果有的话).MOM本质上是一种静态资源.

  • 托管对象上下文是链中的链接,根是持久性存储协调器.托管对象上下文维护实体的状态,通常在内存中.完成对此类对象的操作后,您可以保存此类MOC,通常是保存到持久性存储协调器.应用程序可以具有并发MOC,一个用于UX线程,一个或多个用于后台线程,例如同步.

  • 持久存储协调器一端与持久存储或持久存储进行通信,另一端与MOC进行通信.虽然它很聪明,甚至建议随意创建MOC,以便可以自由地操作对象,但每个DB只需要一个PSC.

  • 持久对象存储是数据库的接口.每个DB一个.

对于外行人:

  • 妈妈:只有1(忽略数据库升级和此类并发症)
  • MOC:每个线程一个.简单的应用程序可能会使用单个UX,但要注意冗长的操作.
  • PSC:每个MOM一个
  • POS:至少一个