【问题标题】:Two persistent stores for one managed object context - possible?一个托管对象上下文的两个持久存储 - 可能吗?
【发布时间】:2011-03-22 23:02:39
【问题描述】:

我有一个相当复杂的数据模型,大约有 10 个实体。有些需要存储到磁盘上,而另一些只需要在应用程序运行时在内存中可用。是否可以为同一个托管对象上下文使用两个持久存储来实现这一点,还是应该相应地分离我的数据模型?

【问题讨论】:

    标签: objective-c cocoa core-data nsmanagedobjectcontext


    【解决方案1】:

    是的,您的 NSManagedObjectContext 使用 NSPersistentStoreCoordinator 来确定特定模型应该使用哪个存储。通过设置托管对象上下文的持久存储协调器,您可以定义一个自定义映射,该映射使用多个不同类型的持久存储。

    http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdBasics.html#//apple_ref/doc/uid/TP40001650-SW4

    【讨论】:

    • +1 要扩展,您将使用配置并将需要存储在磁盘中的实体放在一种配置中,而将内存中的实体放在另一种配置中。创建商店时,将适当的配置分配给适当的商店。请注意,您不能跨商店使用直接关系,而必须依赖获取的关系。
    【解决方案2】:

    您可以使用 TechZen 提到的配置:

    1. 在托管对象模型编辑器(.xcdatamodel 文件)中创建配置;
    2. 在代码中将多个持久存储添加到持久存储协调器,并提供适当的配置名称。

    详情请查看我的其他回答here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      相关资源
      最近更新 更多