将核心数据模型从OSX迁移到IOS

时间:2014-04-26 21:51:01

标签: ios cocoa-touch core-data nsbundle

所以我将我的xcdatamodeld(目录/包)复制到我的IOS项目中。

[NSBundle mainBundle] URLPathForResource:@"MyDataModelName" withExtension:@"momd"]

不起作用。 我检查并正在复制文件,扩展名为.xcdatamodeld。所以,如果我

[NSBundle mainBundle] URLPathForResource:@"MyDataModelName" withExtension:@"xcdatamodeld"]

它确实返回文件,但是当我尝试创建NSManagedObjectModel时它不起作用。

所以我用xcode从核心数据创建了一个新项目,实际上项目中的数据模型文件有xcdatamodeld的扩展,类型为-Core Data Model,但不知怎的,它被复制到应用程序的资源目录中.momd

那么这样被复制的是谁?

2 个答案:

答案 0 :(得分:0)

好的,这很奇怪......我没有将模型从osx拖到ios项目中,而是将它从finder拖到iOS项目中并且工作正常。当我第一次添加它时,它没有将其识别为核心数据模型,尽管xcode检查员面板表示核心数据模型。但该文件不在编译源中。我试图手动添加它并得到一个错误,它没有办法处理类型(null)的文件。

答案 1 :(得分:0)

我发现使用.xcdatamodeld文件的最安全/最可靠的方法是使用finder从源位置移动/复制到目标位置,然后使用Xcode菜单命令"添加要投射的文件..."将相同的文件添加到项目结构中。

也许这个过程是不必要的,但对我而言,每次都有效。