我刚刚声明了一个名为 "Users" 的数组实体:
var UsersArray = [Users]()
我遇到了这个错误:
未解决标识符"Users"的使用
提示:我已经导入了CoreData并创建了实体。
在重命名一个实体后,我遇到了这个问题,并想在这里发布一下我是如何解决的。
通常,在更改数据模型并出现编译错误后,我只需通过“Product”>“Clean Build Folder”,然后“Product”>“Build”即可解决错误。
然而,这次上述步骤没有帮助。经过一番思考,我通过以下步骤找到了罪魁祸首:
其他可能的解决方案:
(A) 重新启动 Xcode
这是对我有效的解决方案。(查看此答案)
(B) 检查是否忘记完成实体描述
通常:忘记为其中一个属性分配类型(仍处于“未定义”状态)。
(C) 清除派生数据
原因:生成的核心数据托管对象子类的源代码文件位于项目的派生数据位置。 注意:如果使用 SPM,则可能需要重新链接您的 Swift 包。
我在使用最新的Xcode12.3开发SwiftUI项目时,遇到了这个问题,因为我在项目创建时没有勾选CoreData选项。
在添加一个类来实例化NSPersistentContainer
、加载存储、创建model.xcdatamodel
文件以及在视图上添加一个文本字段和一个按钮后,它显示了一个错误,说:“无法在范围内找到Item”。
当你期望实体帮助自动完成时,编写代码有点困难。起初,我以为我忘记初始化我的类或者漏掉了一个括号,但事实并非如此。
我尝试多次清理、重建和运行项目,但都失败了。我不得不关闭这个特定的项目,然后所有的错误都消失了。无需重新启动Xcode。
我遇到了同样的问题。在项目开始时没有包含Coredata。后来添加了必要的文件和核心数据堆栈。但是当尝试从实体名称中获取数据时,Xcode会抛出相同的错误。
后来,我关闭了项目,再次在Xcode中打开它,然后它开始工作了。
我在这个项目中遇到了一个问题,与我在另一个项目中创建并移动到此项目中的 .xcdatamodel
有关。
我通过选择 .xcdatamodel
文件,关闭 "文件检查器",然后在 "目标成员资格" 下确保选择了所有目标来解决它。
Users
定义在哪里?要有一个对象数组,该对象必须在某处定义。您需要创建该类的class
或struct
来创建其数组。 - impression7vxCodegen
属性设置为模型中的“类定义”,否则您需要在“编辑器->创建 NSManagedObject 子类...”下自行生成类。在编辑或更改模型后,可能需要清理和重新构建项目,如果尚未尝试,请尝试该方法。 - Joakim Danielson