0

我有一个现有的(并且可以正常工作的)应用程序NSPersistentDocument用于保存应用程序文件。
现在我需要创建一个新实体,这个新实体与应用程序文件完全无关,它将包含应用程序缓存,所以我将使用它来保存在一个单独的文件中。
我的项目包含MyDocument.xcdatamodeld使用 by NSPersistentDocument,以实现新功能我创建了一个新数据模型Cache.xcdatamodeld并向模型添加了一个新实体(我没有编写代码只是使用 XCode 向导)但是当我运行应用程序并尝试打开现有应用程序时文件我收到错误

开店模式与开店模式不兼容

我知道发生这种情况是因为新实体的模型配置相同,NSPersistentDocument但我该如何解耦呢?
在数据模型中创建新配置不起作用,因为无法从默认配置中删除实体。
知道如何NSPersistentDocument忽略新实体并继续使用旧数据模型吗?

我不发布源代码,因为这只是将新模型和实体添加到项目中

4

1 回答 1

1

NSPersistDocument 的managedObjectModel属性文档:

@property(readonly, strong) NSManagedObjectModel *managedObjectModel

讨论

默认情况下,Core Data 框架从应用程序包 ([NSBundle mainBundle]) 中的所有模型创建一个合并模型。您可以重新实现此属性并返回特定模型以用于创建持久存储。典型的实现可能包括类似于以下片段的代码:

NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *path = [bundle pathForResource:@"MyModel" ofType:@"mom"];
NSURL *url = [NSURL fileURLWithPath:path];
NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:url];
于 2016-01-10T02:18:14.357 回答