【发布时间】:2011-12-03 19:31:36
【问题描述】:
我正在尝试执行轻量级迁移,但由于我创建初始数据模型的方式而遇到了问题。最初的数据模型没有版本化,所以现在下面的代码:
-(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;
}
返回错误:* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:]: nil string parameter'
我很确定这是因为初始数据模型——我已经在我的应用中部署给很多人的模型——具有 mom 扩展而不是 momd 扩展。但是,如果我把它拿出来并恢复到
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
我收到错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法合并具有两个不同实体的模型...
我希望这不是第一次有人遇到这种情况...我可以做些什么来为我当前的所有用户成功迁移?
【问题讨论】:
-
希望 Marcus Zarra 参与进来。
-
有什么想法吗?我错过了什么明显的东西吗?
标签: core-data version-control migration core-data-migration xcdatamodel