假设我有managed object context
persistent store coordinator
有两个(或更多)persistent stores
。
在执行获取请求或保存上下文时,Core Data
将使用哪个持久性存储来获取或保存managed objects
?
答案 0 :(得分:3)
如果数据模型中有多个配置,并且不同的配置具有不同的实体,则新插入的对象将进入与该对象的实体关联的任何持久性存储。当您致电configuration
时,这是addPersistentStoreWithType:configuration:URL:options:error:
选项的目的。您告诉持久性存储协调器新持久性存储使用特定配置。因此,持久性存储仅使用配置包含的实体类型。
如果您有多个持久性存储,可以全部保存相同的实体(它们使用相同的配置,或者它们具有针对某些实体重叠的不同配置),那么您可以选择告知托管对象上下文哪个持久性存储为使用。插入对象后,但在保存更改之前,请调用assignObject:toPersistentStore:
告诉它要使用哪一个。如果您没有调用该方法,则会定义使用哪个持久性商店,但它可能是您添加的最后一个。