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

Posted

技术标签:

【中文标题】将核心数据文件从二进制转换为 XML【英文标题】:Convert Core Data file from binary to XML 【发布时间】:2012-06-04 00:23:04 【问题描述】:

Xcode 4 现在显然将 Core Data 文件存储在 XML 中,而之前的版本创建了二进制文件。我想将一些较旧的 .xcdatamodel 文件(嗯,该包中的元素和布局二进制文件)转换为 XML 版本,以便我可以在多个源代码控制分支中区分和合并它们。

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

【问题讨论】:

我也已将其发布到 Core Data Apple 开发者论坛,但目前没有回复:devforums.apple.com/message/671357 【参考方案1】:

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

步骤:

    在 Xcode 中选择 .xcdatamodel 文件。 在 Utilities 窗格(⌘⌥0 - 右侧窗格)中,找到 Core Data Model > Tools Version 并将最小值设置为 Xcode 4.1(或更大)。 瞧!您的 .xcdatamodel 文件现在应该被格式化为 XML。

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

【讨论】:

太棒了,谢谢乔希!看起来这种变化也很适合轻量级迁移(应该如此)。【参考方案2】:

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

【讨论】:

我不确定您如何将旧文件作为新文件的版本导入。我创建了一个新模型文件,然后尝试了各种拖动技术将旧文件放入新文件 - 似乎没有任何效果。 刚刚找到编辑器菜单 > 导入...,它不允许我导入旧的二进制文件。事实上,我不知道那是为了什么。如果有一些关于它的文档,也许可以以某种方式使用该功能...... 我想知道 this answer might help - 看起来你可以调整你可以打开的 xcdatamodel(d) 文件的版本......但我可能误解了那个界面。【参考方案3】:

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

【讨论】:

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

以上是关于将核心数据文件从二进制转换为 XML的主要内容,如果未能解决你的问题,请参考以下文章

将任何文件转换为二进制字符串并从二进制转换为文件[关闭]

Pentaho Kettle - 从二进制类型的字段将十六进制转换为数字

从二进制文件读取时将大端转换为小端

从二进制文件中读取并转换为双精度?

将向量从二进制强制转换为“as.numeric”时保留名称?

从二进制转换为 IEEE 浮点