在Core Data中使用数据模型迁移时,应用程序崩溃

时间:2013-12-13 20:03:16

标签: objective-c macos cocoa core-data core-data-migration

我正在试图弄清楚如何让我的应用程序能够从一个数据模型版本迁移到另一个数据模型版本。

我在线阅读了大量资源,并发现使用Magical Record非常有用,尤其是MR_coordinatorWithAutoMigratingSqliteStoreNamed方法。

在我开始做一些测试之前,一切都很好看,当时我注意到应用程序在以下条件下崩溃。

enter image description here

所以这是我的数据模型版本...当我使用文档版本或document4版本时,一切正常......但是当我选择document3版本时,我遇到了这个崩溃:

enter image description here

任何形式的帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

使用迁移时,必须从.momd捆绑包中手动创建数据模型。因此,对于在应用程序委托中创建的managedObjectModel访问器方法,您需要稍微更改默认情况下实现的方法:

- (NSManagedObjectModel *)managedObjectModel {

    if (managedObjectModel != nil) {
        return managedObjectModel;
    }

    // modified method
    NSString *path = [[NSBundle mainBundle] pathForResource:@"VideoInfo" ofType:@"momd"];
    NSURL *momURL = [NSURL fileURLWithPath:path];
    managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];

    return managedObjectModel;
}

对此here有一个很好的解释。