【问题标题】:Value of type 'Category' (aka 'OpaquePointer') has no member 'name'“类别”(又名“OpaquePointer”)类型的值没有成员“名称”
【发布时间】:2020-01-22 07:24:02
【问题描述】:

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

这是一个截图:

感谢您的帮助!

【问题讨论】:

  • 添加Category类型的定义。并复制粘贴代码而不是屏幕截图。
  • 你能在这里展示你的category模特吗?

标签: swift xcode compiler-errors opaque-pointers


【解决方案1】:

我在 Angela Yu 课程中尝试练习时也遇到过这种情况,其中 Category 是一个核心数据实体。我使用的是 Xcode 11.3.1。在多次尝试将模块设置为当前产品模块并将 Codegen 设置为类定义,然后按 Ctrl-B 进行重建后,我仍然收到错误消息。但是,重新启动 Xcode 解决了问题,然后代码完成能够建议名称属性/属性。

【讨论】:

  • 我不明白为什么,但这个解决方案(重新启动 Xcode)实际上解决了我遇到的同样问题。谢谢!
  • 同样的,同样的练习。重新启动也对我有用。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    之后,您可能会遇到错误“Command CompileSwift failed with a nonzero exit code”。现在,尝试使用 Shift + Command + K & Option + Shift + Command + K 清理您的项目

    【讨论】:

      【解决方案4】:

      如果您正在学习 Angela Yu 的课程,我发现通过在 Codegen 下的 Category Entity 中选择 Manual/NoneClass Definition,可以自动生成类。

      之后也运行cmd + b

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          我正在学习同样的课程。 在我的情况下只是一个 Xcode 错误,并且“类别”没有被识别为一个类。 我只是关闭并重新打开它并正常工作。

          【讨论】:

            【解决方案7】:

            类别未提供名称属性

            【讨论】:

              【解决方案8】:

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

              var categories = [Category]()
              


              let categories = [Category]()
              

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

              【讨论】:

                【解决方案9】:

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

                link to example

                【讨论】:

                  【解决方案10】:

                  在声明类别类型的数组时,这样做:

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

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

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

                  【讨论】:

                    【解决方案11】:

                    美好的一天!

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

                    Screenshot

                    如果您这样做了,请将类别替换为“类别”

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-03-02
                      • 2020-08-11
                      • 2019-04-02
                      • 2019-07-08
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多