缺少 Xcode 核心数据模型
Posted
技术标签:
【中文标题】缺少 Xcode 核心数据模型【英文标题】:Xcode Core Data models are missing 【发布时间】:2016-02-12 17:43:59 【问题描述】:我正在使用 Core Data 开发一个 ios 应用程序,在故事板中做了一些事情后,我尝试运行该应用程序并意识到我的所有 Core Data 模型都丢失了,除了我原来的模型。我的游乐场也不见了,但我并不在乎。我不知道发生了什么,真的需要找回那些数据模型。这是我在项目导航器中查找它们时看到的。
当我尝试构建应用程序时,它构建得很好,但随后我立即收到此错误:
016-02-12 11:46:22.779 App Name[51990:1666336] CoreData: Failed to load NSManagedObjectModel with URL
'file:///Users/myname/Library/Developer/CoreSimulator/Devices/EC2BDB71-BE0C-46CB-B208-09C5D0FD2F3B/data/Containers/Bundle/Application/76FAF1C3-8F85-4A1A-81DE-309B984176E1/App%20Name.app/DataModel.momd/'
fatal error: unexpectedly found nil while unwrapping an Optional value
我尝试撤消自上次提交以来我在 git 中所做的所有更改,但它仍然找不到它们。可能发生了什么?有什么办法可以找回来吗?
【问题讨论】:
实际文件还存在吗?即使文件仍然存在,Xcode 项目中也可能会丢失该文件。 检查Identity and Type
Inspector 中显示的完整路径
不,只有 DataModel.xcdatamodel 存在。其他版本都不是
它显示了正确的路径,但是当我在 finder 中去那里时,它们不在那里。
【参考方案1】:
很难确切地说出发生了什么,但某些原因导致您的文件消失了。它与 Core Data 或 Swift Playground 没有任何关系——你在某个地方遇到了严重的问题,它让你丢失了数据。
这些文件应该在您的 git 存储库中。如果您无法通过撤消自上次提交以来的更改找到它们,则需要更深入地挖掘。如果它们曾经被提交过,它们是可以恢复的,但是回到最后一次提交可能还不够。它们也应该存在于您用来备份硬盘的任何系统中。
Core Data可能可以帮助您通过其他方式恢复模型。如果您在某处有应用程序的较旧编译副本,它将包含数据模型文件的编译版本。 Xcode 可以导入这些并重新创建旧的模型文件。为此,您可以创建一个新模型文件,然后转到“编辑”菜单并选择“导入...”。
但是,所有这些都是您真正的问题的次要问题,即您正在丢失文件并且您不知道原因。您将来可能会丢失更多文件。无论发生什么,都可能再次发生。您需要找出丢失文件的原因并解决该问题。
【讨论】:
当你使用Xcode的git接口时,应该添加核心数据模型吧? Xcode 通常会将每个项目文件添加到 git 存储库中。但我不认为 Xcode 的 git 接口对于任何实际工作都是可靠或足够的。 呃,事实证明,每当我使用 Xcode 的 git 接口提交时,它并没有添加数据模型......我想我应该能够从我拥有的 NSManagedObject 子类重新创建它 好的,我能够重新创建数据模型? 我绝对不会再使用 Xcode 的 git 接口了,谢谢!以上是关于缺少 Xcode 核心数据模型的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 6 中从核心数据数据模型创建 NSManagedObject 子类
xCode 4.2 核心数据如何在数据模型编辑器中使用 GUI 创建获取的属性?
升级到 XCode 6.3.2 后核心数据模型找不到自动生成的实体类(使用 Objective-C 而不是 Swift)