'Category' 类型的值(又名 'OpaquePointer')没有成员 'name'

Value of type 'Category' (aka 'OpaquePointer') has no member 'name'

我在 Xcode 中使用 Swift 时收到以下错误:-- 'Category' 类型的值(又名 'OpaquePointer')没有成员 'name' - 我到处都看过,但找不到解决方案。 有人知道该怎么做吗?

截图如下:

感谢您的帮助!

类别未提供名称属性

如果您正在学习 Angela Yu 的课程,我发现通过为 Codegen 下的类别实体选择 Manual/None 然后 Class Definition,类 是自动生成的。

还有运行cmd + b之后。

我在尝试 Angela Yu 课程中的练习时也遇到过这种情况,其中类别是核心数据实体。我使用的是 Xcode 11.3.1。在多次尝试将 Module 设置为 Current Product Module 并将 Codegen 设置为 Class Definition 然后按 Ctrl-B 进行重建后,我仍然收到错误。但是,重新启动 Xcode 解决了问题,然后代码完成能够建议名称 attribute/property.

也在安吉拉的 class 中。我发现通过删除核心数据模型并将它们重新启动为 独立 没有关系的实体,设置保存和加载功能,运行 应用程序和 然后回到link关系解决了问题。我认为这与在能够引用属性之前将实体保存为 NSManagedObject 有关。我猜测如果不将它们作为 NSManagedObject 启动,默认类型是 Opaque Pointer。祝你好运!

将 'categories' 变量形式 'var' 更改为 'let'。
来自,

var categories = [Category]()


let categories = [Category]()

只要重新构建它就可以了。

我正在上同样的课。 在我的例子中,只是一个 Xcode 错误,"Category" 未被识别为 class。 我只是关闭并重新打开它并且工作正常。

如果 [Category]() 未被识别为 NSManagedObject,只需将术语类别放在括号内的两个单反引号之间。

link to example

我遇到了同样的问题。在我的 DataModel 文件中,我将实体名称和 class 名称从 "Category" 更改为不同的名称,例如 "TodoListCategory." 然后在我的 CategoryViewController 中,我将所有类别对象更改为 "TodoListCategory" 并重建。它解决了我的问题。

之后,您可能会遇到错误"Command CompileSwift failed with a nonzero exit code."现在,尝试使用 Shift + Command + K 和 Option + Shift + Command + K

清理您的项目

声明类别类型的数组时,请按以下方式进行:

var categories = [[`Category`]]()

(如果您将实体名称设为“类别”)

注意:类别左侧只有一个反勾号。

美好的一天!

请确保您没有选择不透明指针而不是 Class。 见下文:

Screenshot

如果您这样做了,请将类别替换为 'Category'

我在学习 Angela Yu 课程时遇到了同样的问题,我尝试了所有我能找到的可用解决方案,但只有这个对我有帮助: 当您的项目打开时:

  1. 按顶部窗格中的产品
  2. 按清理构建文件夹

不要使用热键组合 - 只需用鼠标按下即可! 只有这种方法可以帮助我摆脱这个错误。