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

问题描述:

Xcode 4显然现在将核心数据文件存储在XML中,而之前的版本创建了二进制文件。我想将一些旧的.xcdatamodel文件(以及该包中的元素和布局二进制文件)转换为XML版本,以便我可以在多个源代码管理分支之间进行区分和合并。将核心数据文件从二进制转换为XML

有谁知道如何获取现有的Xcode核心数据模型文件(.xcdatamodeld,.xcdatamodel,或其他)并将其转换为较新的XML文件?

+0

我已经发布到Core Data Apple开发者论坛,但是到目前为止还没有回应:https://devforums.apple.com/message/671357 –

您可以通过更改Xcode中.xcdatamodel文件上的工具版本将旧的二进制文件转换为XML。

步骤:

  1. 选择在Xcode中.xcdatamodel文件。
  2. 在实用程序窗格(⌘⌥0 - 右侧窗格)中,找到核心数据模型>工具版本并将最小值设置为Xcode 4.1(或更高)。
  3. Voila!您的.xcdatamodel文件现在应该格式化为XML。

Core Data Model > Tools Version

感谢Sam Hatchett's answer指着我this answer这最终导致了解决方案。

+2

太棒了,谢谢Josh!它看起来像这个变化也很适合轻量级的迁移(因为它应该)。 –

我没有一个二进制xcdatamodel文件来试试这个,但this question的答案会做你需要的吗?基本上将旧文件导入为新数据模型的“版本”?

+0

我不确定你会如何导入旧的文件作为新版本的一个版本。我创建了一个新的模型文件,然后尝试了各种拖拽技术,将旧文件转换为新文件 - 没有任何效果。 –

+0

刚刚找到编辑器菜单>导入...,它不允许我导入旧的二进制文件。事实上,我不知道那是为了什么。也许这个功能可以以某种方式使用,如果有一些关于它的文档... –

+0

我不知道[这个答案可能有帮助](http://*.com/a/8899089/787801) - 看起来像你可以调整版本您可以打开xcdatamodel(d)文件...但我可能会误解该界面。 –

我认为我所知道的唯一方法是编写一个工具,捕获所有来自旧格式的信息并生成新格式的“骨架”并填入值。我们可以得到一个新旧格式的例子吗?

+0

旧格式是二进制格式,新格式是XML格式。我对编写转换器不感兴趣 - 我正在寻找来自Apple的现有工具... –