如何访问 momd 包中的 mom 文件?

Posted

技术标签:

【中文标题】如何访问 momd 包中的 mom 文件?【英文标题】:How accessing to mom file in momd package? 【发布时间】:2012-01-17 18:47:21 【问题描述】:

我需要你的帮助, 我正在学习 coreData 迁移,但无法访问 momd 包中的两个模型文件。

我已经做到了:

在两个模型的init方法中:

urlModel2 =[[NSBundle mainBundle] URLForResource:@"DeptB" withExtension:@"mom"];

还有另一种方法:

NSManagedObjectModel* model2 = [[NSManagedObjectModel alloc] initWithContentsOfURL:[self urlModel2]];

我想让我的两个模型在每个 NSManagedObjectModel 中做一个验证:

    NSMappingModel *mappingModel =
    [NSMappingModel inferredMappingModelForSourceModel:[self sourceModel]
                    destinationModel:[self destinationModel] error:outError];

您可以在以下位置找到此内容:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweightMigration.html

提前致谢!

【问题讨论】:

【参考方案1】:

我找到了解决方案:

NSString* pathMOMD = [[NSBundle mainBundle] pathForResource:@"Dept" ofType:@"momd"];
NSBundle* bundleMOMD = [NSBundle bundleWithPath:pathMOMD];

// model 1
NSString* pathMOM = [bundleMOMD pathForResource:@"DeptB" ofType:@"mom"];
urlModel1 = [NSURL fileURLWithPath:pathMOM];
NSManagedObjectModel* model1 = [[NSManagedObjectModel alloc] initWithContentsOfURL:[self urlModel1]];
if(!model1) NSLog(@"Problem for Model1"); else NSLog(@"ok 1");

【讨论】:

以上是关于如何访问 momd 包中的 mom 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 版本控制仍在加载旧的 mom 文件

核心数据模型文件不在捆绑包中

如何访问不属于iOS主包的文件

应用商店安装流程

如何打开现有的 .mom 文件,或者有啥方法可以查看现有 .mom 文件的结构

如何解析 .apk 包中的 AndroidManifest.xml 文件