不要以编程方式创建核心数据模型!

当我决定分析我的代码生成时,我在最新,最出色的项目上工作效率很高。 我的大多数方法都在6毫秒以下才能编译,但某些布局方法却需要20毫秒或20毫秒以上的事实,这让我感到非常恼火。

一旦删除了第三方布局框架,并构建了自己的优化解决方案,我就认为自己将恢复生产效率。 然后,我注意到我的图形被构建为PNG,并占用了不必要的空间。 那让我很生气。 一旦将肿的图形移动到矢量上,然后将这些矢量移动到代码上,并且一旦制定了自定义二进制矢量资产格式,以使我的图形不会减慢编译时间,那便是我决定终于可以恢复生产力。

在构建应用程序中的下一个屏幕时,每次在iPhone上运行该应用程序时,我都会不断看到相同的3秒进度条。 “复制领域框架”。 那让我很生气。 为什么浪费时间复制价值95 MB的框架? 因此,随着Realm进入斩波阶段,它将被Apple的数据库基础解决方案Core Data取代。

Core Data随附了一个漂亮的UI,该UI已直接集成到Xcode中,这使创建数据库模式变得容易。 不仅如此,您还可以添加映射模型,从而可以轻松地将架构迁移到新版本。 但是我很喜欢Realm的架构都是用代码定义的,所以我愚蠢地决定着手建立一个类似的解决方案。

有一些稀疏的文档可以在代码中定义模式,但是可以做到。 而我做到了。 没关系 然后我想添加迁移。

那是问题出现的时间。 我开始遇到各种有趣的错误。 您是否知道Google上没有“不支持的实体映射类型”的搜索结果? 我很遗憾。

我搜寻了和我一样处境的人们的互联网。 没有太多可找到的。 不仅如此,当我确实找到那些决定以这种方式使用Core Data的人的参考文献时,有很多人表达了自己的困惑。

出于好奇,用代码而不是用数据模型编辑器构建模型的背后原因是什么? […]如果是由于视力障碍[…]

–困惑的CocoaBuilder.com用户[链接]

最终,我确实弄清楚了迁移。 部分归功于使用称为Hopper的有用调试工具检查了错误原因。 现在,我可以恢复生产力了。

因此,正如标题所述,不要以编程方式创建Core Data模型。 但是,如果您要采取任何方式,我的源代码可能会有所帮助。