将核心数据文件从二进制转换为 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 - 从二进制类型的字段将十六进制转换为数字