我对如何在Xcode 4中执行以下功能以设置在创建版本化模型后使用的模型感到困惑.
设计>数据模型>设置当前版本
为已更新的iPhone应用程序迁移Core Data DB更改,建议采取哪些步骤?
在发布Core Data应用程序之前是否需要(应该)完成任何先前步骤?
我有一个使用CoreData的iPhone应用程序.我最近对数据模型做了一些小改动,现在每次打开应用程序时都会收到错误"无法找到源存储模型".
我有2个版本的数据模型,我所做的唯一更改是添加了一些字段.我正在按照这里最初工作的指南,然后就在今天,在添加一些额外的字段后,它会中断.所有其他字段都标记为可选,并且都具有默认值.迁移代码如下:
NSURL *storeUrl = [NSURL fileURLWithPath:[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"xxx.sqlite"]];
// migration options
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]) {
...
}
Run Code Online (Sandbox Code Playgroud)
在这里成功创建了managedObjectModel:
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"DataModelName" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
return managedObjectModel;
}
Run Code Online (Sandbox Code Playgroud)
我已经将该问题追溯到版本对于1个实体的不匹配.抛出的错误包括对实体的错误: …