将核心数据模型从 OSX 迁移到 IOS
Posted
技术标签:
【中文标题】将核心数据模型从 OSX 迁移到 IOS【英文标题】:Migrating Core Data Model from OSX to IOS 【发布时间】:2014-04-26 21:51:01 【问题描述】:所以我将我的 xcdatamodeld(目录/包)复制到我的 ios 项目中。
[NSBundle mainBundle] URLPathForResource:@"MyDataModelName" withExtension:@"momd"]
不起作用。 我检查并按原样复制文件,扩展名为 .xcdatamodeld。所以如果我
[NSBundle mainBundle] URLPathForResource:@"MyDataModelName" withExtension:@"xcdatamodeld"]
它确实返回了文件,但是当我尝试创建 NSManagedObjectModel 时它不起作用。
所以我使用核心数据从 xcode 创建了一个新项目,并且项目中的数据模型文件确实具有 xcdatamodeld 的扩展名,类型为 -Core Data Model,但不知何故它被复制到应用程序的资源目录中作为.mod
那么谁是这样被抄袭的呢?
【问题讨论】:
【参考方案1】:好的,这很奇怪......我没有将模型从 osx 拖到 ios 项目,而是将它从 finder 拖到 iOS 项目,它工作正常。当我第一次添加它时,它并没有将其识别为核心数据模型,尽管 xcode 检查器面板说核心数据模型。但是该文件不在编译源中。我尝试手动添加它并得到一个错误,它没有办法处理类型(null)的文件。
【讨论】:
【参考方案2】:我发现使用.xcdatamodeld
文件的最安全/最可靠的方法是使用finder 从源移动/复制到您的目标位置,然后使用Xcode 菜单命令“将文件添加到项目.. ." 将相同的文件添加到您的项目结构中。
也许这个过程是不必要的,但对我来说它每次都有效。
【讨论】:
这应该总是有效的......如果/当它不起作用时,请检查添加 CDM 的文件夹/组的路径。如果您从头开始一个新项目,所有文件夹/组路径都应该是正确的,但如果您通过从其他项目复制大量文件夹/文件将项目结构组合在一起,则您的某些路径可能是错误的。 *** 如果您将现有的 CDM 添加到错误的路径中,您的项目将无法将其识别为 CDM 包(并且它会在您的编译构建阶段列表中显示为红色)以上是关于将核心数据模型从 OSX 迁移到 IOS的主要内容,如果未能解决你的问题,请参考以下文章