我从项目中删除了一些核心数据生成文件,但 Xcode 仍然尝试编译它们
Posted
技术标签:
【中文标题】我从项目中删除了一些核心数据生成文件,但 Xcode 仍然尝试编译它们【英文标题】:I deleted some core data generated files from the project, but Xcode still tries to compile them 【发布时间】:2016-09-23 04:31:34 【问题描述】:我删除了 Core Data 从数据模型生成的 Objective-C 文件,所以我可以回到我在 Xcode 7 中生成的 swift 文件。删除文件时,我将文件移到了垃圾箱,并将 swift 文件添加回项目中。我正在使用 Xcode 8.0。
我得到的错误是
“错误:没有这样的文件或目录”,对于丢失的文件,其中之一 这是 Luna.build/DerivedSources/CoreDataGenerated/Luna/.LunaObservation+CoreDataClass.m。 有相应的错误 LunaObservation+CoreDataProperties.m 和 LunaOrbit+CoreDataClass.m, 但不是 LunaOrbit+CoreDataProperties.m。
我在构建阶段的编译源中没有看到文件名。我尝试清理项目并删除派生数据但没有成功。
更新:我终于弄清楚了如何生成 Swift 文件而不是 Objective-C 文件,但我仍然收到它正在寻找已删除的 Objective-C 文件的错误。
更新#2:清理项目并删除整个派生数据文件后,我能够减少错误数量;我不再收到丢失的 .m 和 .h 文件的错误,但我确实收到了一个关于两个丢失文件的错误:.Orbit+CoreDataProperties.swift 和 .Observation+CoreDataProperties.swift。这些文件存在,但名称前面没有句点。尝试将句点添加到文件名会导致“重命名失败”消息。这两个文件在其他没有导入任何内容的文件之后都有一个额外的“导入”——该行刚刚结束。
XCode 8 generates broken NSManagedObject subclasses for ios 10 的帖子几乎显示了我遇到的问题。
【问题讨论】:
【参考方案1】:在数据模型检查器中,尝试将模块选项设置为“当前产品模块”(而不是全局命名空间)。这会将句点添加到生成的 NSManagedObject 子类名称中。
您可以通过查看配置部分来查看此操作的结果。类名将以句点为前缀。
可以在此处找到更详细的回复:https://***.com/a/40647786/4748172
【讨论】:
以上是关于我从项目中删除了一些核心数据生成文件,但 Xcode 仍然尝试编译它们的主要内容,如果未能解决你的问题,请参考以下文章