objective-c - 找不到用于迁移的映射模型 - UIManagedDocument 核心数据迁移

标签 objective-c ios cocoa-touch core-data xcode4.5

我有两个版本的模型 Model001.xcdatamodelModel002.xcdatamodel。这两个位于 Model.xcdatamodeld 包中。 我还有一个 Model001to002.xcmappingmodel,它不是 Model.xcdatamodeld 的一部分。我检查过:xcmappingmodel 和 xcdatamodeld 都被复制到 .app 包中。

我的托管对象上下文是这样初始化的:

    NSURL *documentModel = [bundle URLForResource:@"Model" 
                                     withExtension:@"momd"]; managedObjectModel = [[NSManagedObjectModel alloc]
    initWithContentsOfURL:documentModel]; return managedObjectModel;

我还在我的 UIManagedObject 子类中的重写 initWithFileURL: 上设置了这些属性。

    NSMutableDictionary *options = [NSMutableDictionary dictionaryWithDictionary:self.persistentStoreOptions];
    [options setObject:@YES forKey:NSMigratePersistentStoresAutomaticallyOption];
    [options setObject:@YES forKey:NSInferMappingModelAutomaticallyOption];
    self.persistentStoreOptions = [options copy];

但是当我尝试打开文档时,出现以下错误: 找不到用于迁移的映射模型

-- 更新--

即使我进行手动迁移

     [NSMappingModel mappingModelFromBundles:@[[NSBundle mainBundle]]
                              forSourceModel:sourceObjectModel
                            destinationModel:self.managedObjectModel];

这返回零。尽管我仔细检查了 Model001to002.cdm 是否在应用程序包中。它必须在应用程序包中,对吗?

最佳答案

映射模型的一个“陷阱”是,您不能在创建映射后对模型进行任何更改。如果这样做,您也会收到此错误。

关于objective-c - 找不到用于迁移的映射模型 - UIManagedDocument 核心数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782570/

相关文章:

objective-c - 在UIAlertView上设置延迟

objective-c - 如何触摸和拖动动画图像?这是我的动画代码 :

ios - 如何处理用户从WKWebView上传的图像或视频?

ios - iOS 上的 Qt 5.5 视频着色器问题

ios - 在主 UiViewController 中动态声明子 UiViewController

iphone - iOS7 navigationBar 和 TabBar Color 表现异常

ios - 使用 NSPredicate 过滤 NSArray

ios - 推送通知 : both didFailToRegister and didRegister delegate not calling

iphone - quartz : can't create a rounded rectangle with gradient fill

objective-c - gcc 为 Objective C 定义