ios - 如何访问mod包中的mom文件?

标签 ios core-data core-data-migration

我需要你的帮助, 我正在学习 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

提前致谢!

最佳答案

我找到了解决方案:

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");}

关于ios - 如何访问mod包中的mom文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899970/

相关文章:

ios - 在 SwiftUI 中更改弹出窗口大小

ios - 核心数据映射模型版本哈希与源模型版本哈希不匹配

ios - 我必须在第一个版本中启用版本控制才能在后续版本中使用轻量级迁移吗?

core-data - 立即启用文件NSManagedObjectContext的保存?

ios - `fetchRequestForSourceEntityNamed:predicateString:` 的默认源获取 `NSMigrationManager` 在哪里定义的?

java - Mac OSX 10.7.3 Intellij Idea 12 Android 模拟器崩溃

ios - 如果用户没有应用程序,如何实现 DeepLinking?

ios - 核心数据 : unrecognized selector sent to instance

ios - Swift CoreData——无法将类型 'Int' 的值分配给类型 'Int16'

ios - 如何让 tableView.reloadData() 与核心数据正常工作?