Ada*_*amB 2 macos core-data objective-c
我添加了一个新的模型版本,并且我将核心数据模型设置为使用该新版本,但是当应用程序尝试启动时我收到此错误.
"用于打开持久性存储的托管对象模型版本与用于创建持久性存储的版本不兼容."

我猜测问题是当前的持久存储是该模型的旧版本.有没有办法只删除它,所以它是一个新的?我不关心保存任何数据.
您必须在版本之间进行迁移.根据Apple的文档,如果更改很简单,您可以进行轻量级迁移.
将这些选项添加到NSPersistentStoreCoordinator似乎可行.
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSURL *url = [applicationFilesDirectory URLByAppendingPathComponent:@"YOURAPP.storedata"];
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType configuration:nil URL:url options:options error:&error]) {
[[NSApplication sharedApplication] presentError:error];
[persistentStoreCoordinator release], persistentStoreCoordinator = nil;
return nil;
}
return persistentStoreCoordinator;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3529 次 |
| 最近记录: |