【发布时间】:2018-02-02 22:54:25
【问题描述】:
更新到 Xcode 8.3(以及随后的 8.3.2)后,我的应用程序继续构建,但代码完成已完全中断。
据我所知,Xcode 根本无法识别我的 Core Data 类,但出于某种原因,构建仍然成功完成,并且应用程序本身可以像以前一样工作。结果是我有大量的use of undeclared type: [entity name] 错误,并且代码完成不再起作用。
这是我尝试解决的问题。
- 从头开始删除 Core Data 模型并重新配置它。
- 清理构建文件夹
- 手动删除 DerivedData 文件夹
- 关闭/重新打开 xcode
- 哭一点,但只是在内心
- 将 Codegen 设置从
Class Definition更改为Category/Extension,构建,然后重置,同时进行清理和手动删除 DerivedData 文件夹 - 验证模型文件的目标是否正确设置
- 将
import CoreData添加到每个包含对模型类的引用的文件中 - 创建实体的虚拟类,这会破坏构建并且原来的
undeclared错误被替换为invalid redeclaration of [entity name]。 - 将所有实体
Module设置更新为Current Product Module - 清理项目,清理构建文件夹,删除派生数据文件夹,重新启动 xcode,构建,按此顺序。
我确信这是 Xcode 的一个错误,但我希望有一种方法可以在不等待苹果的情况下解决这个问题。
【问题讨论】:
-
您是否保存了模型更改?型号名称是什么?我的意思是实体名称
-
您从哪个版本的 Xcode / Swift 升级?您是否验证了实体类文件的目标成员资格?您是否在主要目标或测试目标或两者中都遇到错误?
-
您是否尝试过清理项目、构建文件夹和派生数据,而不在两者之间进行构建?如果没有,则尝试依次执行所有三个并重新启动 Xcode,然后构建。
-
你能添加错误的图像吗?如果有帮助,还要检查一下:stackoverflow.com/questions/43178089/…
-
@MikeTaverne 从 8.2.1 升级到 8.3(问题开始时),然后从 8.3 升级到 8.3.2。我将如何验证类文件的成员身份?我可以验证模型的成员身份,但模型管理这些类文件。我拥有的唯一文件是类的扩展。