Core Data 如何选择持久存储来保存/获取数据?

Fri*_*lab 1 cocoa core-data

让\xe2\x80\x99s 说我有一个managed object context,它persistent store coordinator有两个(或更多)persistent stores

\n\n

执行获取请求或保存上下文时,将Core Data使用哪个持久存储来获取或保存?managed objects

\n

Tom*_*ton 5

如果数据模型中有多个配置,并且不同的配置具有不同的实体,则新插入的对象将进入与该对象的实体关联的任何持久存储中。configuration这就是您调用时该选项的目的addPersistentStoreWithType:configuration:URL:options:error:。您告诉持久性存储协调器新的持久性存储使用特定的配置。因此,持久存储仅使用配置包含的实体类型。

如果您有多个持久存储,它们都可以保存相同的实体(它们使用相同的配置,或者它们具有与某些实体重叠的不同配置),那么您可以选择告诉托管对象上下文要使用哪个持久存储。插入对象后,但在保存更改之前,请调用assignObject:toPersistentStore:以告诉它您希望它使用哪一个。如果您不调用该方法,则使用哪个持久存储是未定义的,但它可能是您添加的最后一个。

  • 您无法重新分配持久存储,这是一次性操作。如果要将数据从一个存储移动到另一个存储,则必须创建一个新实例并复制属性值。 (2认同)