1

我正在 OS X Lion 上基于 Core Data 的 Cocoa 应用程序工作,我需要能够将数据模型的不同部分(比如 partA 和 partB)保存到单独的文件中。

我需要能够将两个文件一起保存为项目文件/包,但还需要能够独立于 partB 加载和保存 partA。

加载新的 partA 文件应替换当前与 partA 关联的所有数据。保存partA 不应该保存partB 中更改的数据。

A 部分中的实体确实需要与 B 部分中的实体保持关系,但这些可能(并且很可能必须)很弱。

我的主要问题是:实现所需功能的最佳方法是什么?


我的第一种方法是NSManagedObjectModel包含两种配置,每个部分一个配置。我为每个配置NSPersistentStore分配了两个实例。NSPersistentStoreCoordinator和一个分配给它NSManagedObjectContext的实例。storeCoordinator

保存和打开单独的文件目前是我在这个方法中的主要关注点。NSManagedObjectContext -save:消息似乎保存了这两种配置。是否可以只保存对属于特定配置的对象所做的更改NSManagedObjectModel?或者我需要两个NSManagedObjectContext实例,每个配置一个?

通过向 for partA 添加存储来打开文件persistentStoreCoordinator会将数据添加到上下文中,到目前为止我还无法替换数据。有没有办法知道哪个商店与某个配置相关联,也许是通过向 发送消息persistentStoreCoordinator

我也在考虑第二种方法:NSPersistentDocument为我的数据模型中的每个配置设置两个子类,以便能够将数据保存到单独的文件中。但我不确定拥有两个单独的实例是否允许在不同配置中的子类NSManagedObjectContext之间建立关系?NSManagedObject

如果有人有一个好主意或可以指出我正确的方向,甚至有我如何实现上述功能的示例,那将不胜感激。

4

0 回答 0