iOS 核心数据映射模型

Posted

技术标签:

【中文标题】iOS 核心数据映射模型【英文标题】:iOS CoreData MappingModel 【发布时间】:2011-12-07 13:51:44 【问题描述】:

我不清楚如何使用 Xcode 接口添加额外的映射模型。目前我有一个版本化的数据库,并使用核心数据简单迁移从 V1 到 V2。但现在我需要在某些情况下从 V2 升级到 V3,并根据用户在其应用更新周期中所处的位置从 V1 升级到 V3。

我的具体问题是,当我使用 Xcode 创建其他映射模型时,它会将它们放在单独的文件中。但是 CoreData 唯一自动检测到的是名为“Model.xcmapingmodel”的那个。所有的映射都应该在这个文件中吗?如果是的话,你如何使用 Xcode4 把它们放在那里?

我的印象是 CoreData 查看了用户版本的数据库,然后查看了数据库的“当前”版本应该是什么,并寻找用于迁移的映射模型?如果是,它没有找到其他映射模型?

【问题讨论】:

【参考方案1】:

每个映射都放入自己的文件中。您看到的行为 - 在运行时找不到某些映射模型 - 可能是一个错误。正如here 报告的那样,我有类似的症状(已通过“全部清除”解决)。您可以在 app bundle 中查看您的哪些映射模型“成功”了。

所以你的印象是正确的,但是规范的 Xcode 实现并不是没有错误的 :-(

【讨论】:

是的,做到了!知道你做对了总是有帮助的,但是先把橡皮鸡挥过去,然后把盐撒在你的左肩上……:) Apple 肯定喜欢他们的巫术 :-)

以上是关于iOS 核心数据映射模型的主要内容,如果未能解决你的问题,请参考以下文章

映射核心数据模型属性类型

具有多个映射模型的复杂核心数据迁移

使用映射模型在核心数据对象模型之间迁移

核心数据测试迁移映射模型

更改核心数据模型版本标识符

核心数据迁移 - 找不到迁移的映射模型