Xcode 显示在 CoreData 类上使用未声明类型

Posted

技术标签:

【中文标题】Xcode 显示在 CoreData 类上使用未声明类型【英文标题】:Xcode showing use of undeclared type on CoreData classes 【发布时间】:2018-08-22 20:15:36 【问题描述】:

我在使用 Xcode 时遇到问题,我的 CoreData 类的所有用法都显示 Use of undeclared type [class name]。该项目可以正确构建和运行,但是我引用我的 CoreData 类的所有实例都会在 Xcode 中突出显示红色警告,并且没有任何代码完成工作。有没有其他人遇到过这个问题?这是我尝试过的:

删除派生数据 干净 清理构建文件夹 删除存档(开发者/Xcode/存档) 删除产品(开发者/Xcode/产品) 删除并重新添加 xcdatamodeld 文件 重启 Xcode 重新启动我的 Mac

我正在使用 Xcode 9.4.1(使用 10 的 beta 版本不是一个选项)并且已经没有想法了。代码库是用 Swift 4 编写的。感谢任何帮助。

【问题讨论】:

【参考方案1】:

看起来这与 CoreData 的代码生成有关。以前,将 codegen 设置为 None 然后将其更改回 Class Definitions 是可行的。似乎这不再为我解决问题。我已将所有实体设置为生成类定义:

在我将其更改为手动并手动生成我的类后,一切都按预期工作。

    将此设置更改为手动/无 手动生成类(编辑器 > 创建 NSManagedObject 子类... > 选择您的模型 > 选择所有实体) 删除派生数据文件夹

【讨论】:

以上是关于Xcode 显示在 CoreData 类上使用未声明类型的主要内容,如果未能解决你的问题,请参考以下文章

调用 NSManagedObject 类上的指定初始化程序失败 - CoreData

CoreData:错误:无法在创建时调用 NSManagedObject 类上的指定初始化程序

在 Xcode 中使用 CoreData 从模态视图控制器重新加载视图

xcode/ios/coredata:添加新记录后,tableview 中的最后一条记录显示两次

将 CoreData 数据模型文件添加到 XCode 4.2 会导致源代码控制停止使用问号

Xcode 12.2+生成SwiftUI 2.0 CoreData模板预览时崩溃问题的解决