下载.xcdatamodeld文件并以编程方式创建.momd

时间:2013-06-06 09:36:30

标签: ios core-data

我最近玩弄核心数据很多,而且我的错误是你创建一个.xcdatamodeld来创建你的基础结构,然后xcode将它转换成.momd文件

我的问题是:是否可以通过编程方式进行转换,而不是通过xcode完成转换?

比方说,我们不能在iOS应用程序中从互联网上下载xcdatamodeld文件,并让它解释它并创建底层基础。

3 个答案:

答案 0 :(得分:3)

如果您下载整个xcdatamodeld包(它是一个目录)并将其解压缩,您可以使用我的momcom项目中的代码将其编译为.momd。然后,您可以像任何其他数据模型一样加载它。这个项目仍然有点实验性,但到目前为止它在测试中表现良好。 [更新:该项目不会在iOS上运行,因为它使用NSXMLDocument。如果您想尝试此操作,可以使用TouchXML,它旨在成为NSXMLDocument的替代品。我不知道在您自己的应用程序中编译Core Data模型的任何其他选项。]

关于拥有数据模型和持久存储匹配的常规规则适用。除非您处理模型迁移,否则您不能只使用新编译的模型并将其与现有商店一起使用。此外,我不知道Apple对于下载新数据模型文件的应用程序的态度是什么 - 它可能没问题,或者它可能会让你遇到麻烦。

答案 1 :(得分:1)

您可以使用Apple的 momc 脚本从xcdatamodeld源创建一个momd文件。

  

将xcdatamodeld“source”目录编译到momd部署目录中,并将xcdatamodel“source”文件编译为mom部署文件。

(正如此处所解释的 https://developer.apple.com/library/mac/documentation/cocoa/conceptual/coredata/articles/cdUsingMOM.html

如何使用脚本:

  1. 制作要转换的xcdatamodeld文件的副本。它将被替换。
  2. 打开终端并转到Developer bin文件夹

    cd /Applications/Xcode.app/Contents/Developer/usr/bin/

  3. 在xcdatamodeld文件上运行 momc 脚本

      

    用法:momc源目的地

    示例(放置扩展名很重要):

      

    ./ momc input.xcdatamodeld result.momd

答案 2 :(得分:0)

不,你不能从互联网上下载xcdatamodeld文件并使其正常工作。如果这样做,您的程序将因错误的数据模型而崩溃。您的数据模型需要位于主捆绑中,您必须选择当前的数据模型。核心数据维护模型版本和有关数据模型的一些信息。即使您更改模型并且不迁移模型,程序也会崩溃,您必须从设备/模拟器中删除该应用程序。

但是,您可以下载.sqlite数据库,但数据模型应该相同。