nan*_*nan 2 migration iphone core-data
我知道这是一个经常被问到的问题,但是我找到的解决方案似乎都不适用于我.
这是我的情况:我的应用程序有一个数据模型,我想为它添加版本.所以在XCode中,我做了Design - > Data Model - > Add Model Version.我还更新了我的委托的persistentStoreCoordinator方法,如下所示:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory]
stringByAppendingPathComponent: @"foo.sqlite"]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,
nil];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if(![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
/*Error for store creation should be handled in here*/
}
return persistentStoreCoordinator;
}
Run Code Online (Sandbox Code Playgroud)
为了确保一切仍然有效,我做了一个干净的所有,构建,并在模拟器中测试它.一切都运作到目前为止.
接下来,我选择了新版本数据模型,使用XCode将其设置为当前版本,并为实体添加了一个额外属性.然后,我做了一个干净的所有,构建.现在每当我启动应用程序时,它都会崩溃并出现此错误:'无法将模型与名为'foo''的两个不同实体合并.
我究竟做错了什么?我已经尝试确保没有向目标添加数据模型,只将当前版本数据模型添加到目标,以及两者.每次我测试我都要确保清洁所有.
任何人都可以解释为什么它对我不起作用?
编辑:
这是我的managedObjectModel方法:
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
return managedObjectModel;
}
Run Code Online (Sandbox Code Playgroud)
我已经预料到了managedObjectModel getter的这种实现.
在您的实现中,捆绑包中的所有模型都合并为一个模型.因此,.momd中的所有版本也会合并,从而导致重复的实体定义.
更改代码以使用适当的模型文件显式初始化模型,它应该可以正常工作.
NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"datamodel" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3669 次 |
最近记录: |