核心数据模型版本控制,没有 xcdatamodeld 文件

Posted

技术标签:

【中文标题】核心数据模型版本控制,没有 xcdatamodeld 文件【英文标题】:Core Data model versioning, don't have xcdatamodeld file 【发布时间】:2015-04-16 11:44:13 【问题描述】:

在我的项目中,我没有 xcdatamodeld 文件,而只有 Model.xcdatamodel 文件。我不知道它是如何发生的,现在该应用程序已经运送到商店。那么,有没有办法可以添加模型版本控制。请帮忙。

【问题讨论】:

【参考方案1】:

使用添加模型版本控制的 Xcode 菜单项。

【讨论】:

项目中有xcdatamodeld文件(不是.xcdatamodel文件)是可能的 什么?像一个空的xcdatamodeld 你是对的! .xcdatamodeld 文件将在“添加模型版本”之后创建。 .xcdatamodeld 文件将包含 .xcdatamodel 文件。 @TomHarrington 根本没有 xcdatamodeld 文件。无论如何,我已经发布了我的解决方案,如果您有更好的解决方案,请分享。【参考方案2】:

这就是我解决问题的方法。发生了什么是我使用较旧的 Xcode 版本,我不知道是哪一个,但它创建了 xcdatamodel 文件,我检查了 Xcode 6 默认创建 xcdatamodeld 文件。 进一步阅读,我在早期版本中第一次知道它创建 xcdatamodel 文件,当您添加模型版本时,它会自动转换为 xcdatamodeled 文件。 当我在 Xcode 6 中尝试同样的事情时,它用新的 xcdatamodeld 文件替换了 xcdatamodel 文件,但它不维护任何核心数据实体或任何东西,它只显示空文件。

所以,为了解决这个问题,我就是这样做的,我创建了我的 model.xcdatamodel 文件的备份。我从我的项目和查找器中删除了它。然后我创建了一个新的同名核心数据文件,它创建了 model.xcdatamodeld 文件。然后我打开它的包并将内容文件从model.xcdatamodel复制到model.xcdatamodeld,它就可以工作了。

为了验证它,我下载了我的应用商店版本,添加了一些缓存,然后用我的 Xcode 版本更新它,它维护数据库,现在我有了 xcdatamodeld 文件,所以我可以轻松添加新版本。

将使用试飞版本进行更多测试,看看它是否工作正常,但到目前为止没有问题。

希望,它也可以帮助其他人。

【讨论】:

以上是关于核心数据模型版本控制,没有 xcdatamodeld 文件的主要内容,如果未能解决你的问题,请参考以下文章

无法将 .xcdatamodel 置于源代码控制之下

核心数据版本控制,总是加载以前的版本

将核心数据文件从二进制转换为 XML

轻量级数据迁移

在没有打开版本控制的情况下更改了核心数据模型

CoreData:从 xcdatamodel 版本 n 到 n+5 的轻量级迁移