如何创建神奇的.xcdatamodeld文件夹/包?

时间:2010-12-23 10:45:10

标签: iphone objective-c xcode core-data

最近,我管理(不小心,不要问)删除我的Core Data数据模型文件和类。而且我完全无法再次创建文件,因为它们与新开始的项目完全相同,这些文件是由XCode自动准备的。

在新项目中,文件如下所示:

alt text

虽然我能够创造的是:

alt text

我是否提到应用程序不再以这种方式工作了?它崩溃说模型不能是nil。通过启动一个具有相同名称的新项目并将文件拖到旧项目来解决问题 - 我认为这不是最优雅的解决方案。

然而,我认为有关Core Data的内容我显然还不太明白。

拜托,启发我 - .xcdatamodeld文件夹背后的魔力是什么?为什么Foo.xcdatamodel会显示绿色选中图标?数据模型是否需要以某种方式进行编译或处理?

非常感谢你们!

2 个答案:

答案 0 :(得分:29)

coredata模型包保留所有模型版本。 带有绿色复选标记的模型是当前版本,存储在coredata中的数据将使用此方案保存。 所有其他datamodel版本都支持数据库迁移,如果数据模型中只有很小的变化,则可以自动升级存储在不同版本中的数据。

要创建模型包,请选择单个模型,打开主菜单中的Design菜单,然后选择Data ModelAdd Model Version

您的应用程序崩溃了,因为它需要一个类型为momd的数据模型包。

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"foobar" ofType:@"momd"];

如果您只有一个Datamodel,则不会将其编译为“momd”文件。但我忘记了实际的扩展。


在Xcode4 Add Model Version中可以找到Editor主菜单。

答案 1 :(得分:3)

在我的开发过程中,我找不到我后来添加的实体。 什么对我有用:

每次更改数据模型时都要卸载应用程序!

数据模型由Core Data在安装之间进行缓存,以确保完整性保持完整。从模拟器/ iPhone中删除应用程序,以便能够测试您的更改。

PS:有没有人知道如何自动完成?