什么是 Core Data 的 .omo 文件?是必需的吗?

Posted

技术标签:

【中文标题】什么是 Core Data 的 .omo 文件?是必需的吗?【英文标题】:What's Core Data's .omo file? Is it required? 【发布时间】:2012-08-27 04:32:00 【问题描述】:

当我编译 Core Data 模型时,我得到 .mom、.omo 和 versioninfo 文件。 .mom 看起来像托管对象模型文件。什么是 .omo 文件?我不知道。尤其是当我想为 ios 创建一个静态库时,如果我也嵌入 omo 文件会很混乱。而且 Xcode 无法识别数据模型包。我必须将它们作为文件基础。 .omo 文件是什么?

【问题讨论】:

只是一个猜测,但我认为它的相同数据组织方式不同。我知道我可以使用其中任何一个创建一个 NSManagedObjectModel 并获得相同的结果。 是的,只有当前版本的数据模型有 .omo 文件。当您将数据模型的当前版本从 Modelv03.mom 更新为 Modelv04.mom 时,Xcode 也会从 .momd 目录中删除 Modelv03.omo 文件,并将其替换为新的 Modelv04.omo 文件。 【参考方案1】:

在今年的 WWDC 上,我与实验室的 Core Data 工程师交谈,他们告诉我.omo 文件只是.mom 文件的优化版本。 .mom 文件是二进制 plist,而 .omo 是其他类型的加载速度更快的格式。

他们告诉我,您可以安全地删除 .omo 文件,Core Data 将从——稍微慢一点的——.mom 文件加载。他们告诉我这样做只会导致额外的几毫秒加载时间(这引出了一个问题,即他们为什么首先要费心优化它)。

【讨论】:

【参考方案2】:

在我的例子中,当我为一个实体关系指定 RenamingID 时生成了 omo 文件。 我链接到这个文件的最糟糕的事情是,即使对于简单的数据库更改,我也失去了使用轻量级数据库迁移的能力。

【讨论】:

这似乎是我们所经历的——轻量级数据库迁移失败,尤其是在 iOS 上,这导致数据库损坏。我们如何防止这些文件被创建?

以上是关于什么是 Core Data 的 .omo 文件?是必需的吗?的主要内容,如果未能解决你的问题,请参考以下文章

谈一谈OMO的创新之路

安卓根目录里data/core文件夹里面的文件是啥?特别大,都是100m一个的zip

Core Data 数据库正确存储

为啥 Core Data 插入需要越来越长的时间?

在 SwiftUI 中将加载的 json 文件中的更改保存到 Core Data

解析 XML 和构建 Core Data 数据库最有效的过程是啥?