Xcode 11 无法识别核心数据实体

Xcode 11 doesn't recognize Core data Entity

我刚刚声明了一个名为 "Users" 数组的实体:

var UsersArray = [Users]()

我收到这个错误:

use of unresolved identifiers "Users"

提示:我确实导入了 CoreData 并创建了实体

请尝试这个解决方案!!

解决方案 1:- Product->Build for testing 为我解决了这个问题(由于某些奇怪的原因,它解决了大多数未解决的标识符错误)

解决方案 2 :- 更改 import Foundation 以导入 UIKit。 UIApplication 似乎没有包含在 Foundation 框架中。

解决方案 3:- 突出显示数据模型,转到编辑器 -> 创建 NSManagedObject 子类...

解决方案 4:- 创建 NSManagedObject 文件,然后删除它们,一切都已修复。

希望对您有所帮助谢谢。

在重命名实体后 运行 进入这个问题,我想我应该 post 在这里我是如何解决它的。

通常在更改数据模型并出现编译错误后,我只需执行“产品”>“清理生成文件夹”,然后“产品”>“生成”,这应该可以解决错误。

然而,上述步骤这次没有帮助。摸不着头脑后,我通过以下步骤找到了罪魁祸首:

  1. 在项目导航器中,select 您的 .xcdatamodelId 文件
  2. 在配置部分,select适当的配置
  3. 查找有问题的实体并确保 class 名称正确(在我的例子中,实体和 class 不同)

其他可能的解决方案:

(A) Re-launch Xcode

这是对我有用的解决方案。 ()

(B) Check if you did not forget to finalize your entity description

通常:忘记为其中一个属性分配类型(仍为“未定义”)。

(C) Clear derived data

原因:生成的核心数据管理对象子类的源代码文件在项目的派生数据位置。 注意:您可能需要重新 link 您的 swift 软件包正在使用 SPM。

如果您的实体确实已创建,只需关闭并重新打开 XCode。这每次都对我有用。其他解决方案,例如干净构建、构建等,对我不起作用。

即使在 SwiftUI 项目上使用最新的 Xcode12.3,我也不得不处理这个问题,在项目创建时我没有检查 CoreData 选项。

添加 class 以实例化 NSPersistentContainer 后,加载商店,创建 model.xcdatamodel 文件,其中包含实体和文本字段以及视图上的按钮,然后显示一条错误消息:“在范围内找不到项目”。

当您希望实体帮助自动完成时,编写代码有点困难。首先,我以为我忘记初始化我的 class 或错过了一个括号,但也不是那样。

我多次尝试清理、重建和 运行 项目,结果构建失败。我不得不关闭这个特定项目,然后所有错误都被消除了。无需重启 Xcode.

我遇到了同样的问题。在项目开始时不包括 Coredata。后来添加了必要的文件和核心数据堆栈。但是当试图从实体名称和 Xcode 中获取数据时抛出相同的错误。

后来,我关闭了项目,然后在 Xcode 上再次打开,它开始工作了。

我在另一个项目中创建的 .xcdatamodel 遇到了这个问题,然后将它移到了这个项目中。

我通过选择 .xcdatamodel 文件解决了这个问题,关闭“文件检查器”,然后在“目标成员资格”下,确保所有目标都被选中。