0

我正在尝试执行轻量级迁移,但由于我创建初始数据模型的方式而遇到问题。最初的数据模型没有版本化,所以现在下面的代码:

-(NSManagedObjectModel *)managedObjectModel {

    //NSLog(@"%s", __FUNCTION__);
    if (managedObjectModel != nil) {
        return managedObjectModel;
    }
    //managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];

    NSString *mainPath = [[NSBundle mainBundle] pathForResource:@"myDatabase" ofType:@"momd"];

    NSURL *mainMomURL = [NSURL fileURLWithPath:mainPath];
    managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:mainMomURL];
    return managedObjectModel;
}

返回错误:* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSURL initFileURLWithPath:]: nil string parameter”

我很确定这是因为最初的数据模型——我已经在我的应用程序中部署给很多人的那个——具有 mom 扩展而不是 momd 扩展。但是,如果我把它拿出来并恢复到

managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];

我收到错误消息:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法将模型与两个名为...的不同实体合并

我希望这不是第一次有人遇到这种情况......我可以做些什么来为我当前的所有用户成功迁移吗?

4

1 回答 1

0
于 2011-10-10T00:05:32.310 回答