我试图在CoreData中使用迁移功能。我遵循Apple文档。我在下面的方法存在问题:使用mergedModelFromBundles:和版本控制(CoreData)
/**
Returns the managed object model for the application.
If the model doesn't already exist, it is created by merging all of the models found in the application bundle.
*/
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
/*
* NSInvalidArgumentException', reason: '*** -[NSCFArray insertObject:atIndex:]: attempt to insert nil'
* 2010-02-17 16:27:15.338 Patrimoine[3037:207]
*/
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
return managedObjectModel;
}
看来,有上http://iphonedevelopment.blogspot.com/2009/09/core-data-migration-problems.html
但我选择了苹果的建议,通过使用菜单选项的方法相同的问题“添加模型版本”。
你有什么想法吗?
这很完美!谢谢! – charlax 2010-02-18 18:13:49
清洗不一定能解决问题。 Xcode不会从已安装的应用程序中删除旧的资源文件,即使在完整的构建之后。使用initWithContentsOfURL而不是mergedModelFromBundles至少可以将问题简化为只有一个文件夹中的旧.mom文件。 (我只是为这个问题奋斗了几天:http://stackoverflow.com/a/13146888/1017650) – Symmetric 2012-11-03 01:46:13