更新到 Xcode 8.3(以及随后的 8.3.2)后,我的应用程序继续构建,但代码完成已完全中断。
据我所知,Xcode 根本无法识别我的 Core Data 类,但出于某种原因,构建仍然成功完成,并且应用程序本身可以像以前一样工作。结果是我有大量的 use of undeclared type: [entity name] 错误,并且代码完成不再起作用。
这是我尝试解决的问题。
- 删除核心数据模型并从头开始重新配置。
- 清理构建文件夹
- 手动删除 DerivedData 文件夹
- 关闭/重新打开 xcode
- 哭一点,但只是在内心
- 将 Codegen 设置从
Class Definition 更改为 Category/Extension ,构建,然后重置,同时进行清理和手动删除 DerivedData 文件夹
- 验证模型文件的目标设置是否正确
- 将
import CoreData 添加到每个包含对模型类的引用的文件中
- 创建实体的虚拟类,这会破坏构建,并且将原始
undeclared 错误替换为 invalid redeclaration of [entity name] 。
- 将所有实体
Module 设置更新为 Current Product Module
- 清理项目,清理构建文件夹,删除派生数据文件夹,重新启动 xcode,构建,按此顺序。
我确信这是 Xcode 的一个错误,但我希望有一种方法可以在不等待苹果的情况下解决这个问题。
Best Answer-推荐答案 strong>
此问题的操作解决方案是将所有实体的 Codegen 选项设置为 Manual/None 并手动创建/维护类,这很糟糕。为了让这更容易,我所做的是构建,转到 DerivedData 文件夹并找到 xcode 自动创建的类,然后将这些文件添加到项目中。
关于ios - Xcode 8.3 核心数据 "use of undeclared type"错误,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/43730030/
|