【问题标题】:Cannot find type __ IntentHandling in scope with for dynamic content in Custom Intent Handler在自定义 Intent 处理程序的动态内容范围内找不到类型 __ IntentHandling
【发布时间】:2022-09-26 11:16:56
【问题描述】:

我有一个带有意图处理程序的 WidgetKit 小部件。目前它使用硬编码值,我正在尝试将其扩展为使用动态值。

我在另一个项目上成功地做到了这一点,但正在努力解决这个问题。

这是我所做的:

  1. 创建了一个意图处理程序目标

  2. 添加了自定义类型

  3. 将该类型添加为参数

  4. 将意图定义添加为新目标的成员

  5. 意图有一个自定义类名

  6. 自定义代码生成成功

  7. 设置IntentHander类实现ThemeSelectionIntentHandling

    如您所见,此操作失败并出现错误Cannot find type \'ThemeSelectionIntentHandling\' in scope

    失败的目标是 Intent Handler:

    /Users/lewissmith/code/wtw-ios-app/WTWIntents/IntentHandler.swift:12:3: error: cannot find type \'ThemeSelectionIntentHandling\' in scope
    , ThemeSelectionIntentHandling {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Command EmitSwiftModule failed with a nonzero exit code
    

    如果我删除实现ThemeSelectionIntentHandling,那么它会按预期构建。

    DTS 不会帮助我,因为该项目使用 Cocoapods。

    有没有人有任何想法?

  • 哪个目标未能建立? (在 Xcode 中,报告导航器中提供了详细的构建信息,cmd-9 显示了它)。这听起来像您生成的类未包含在需要它的某些目标中。
  • Gotcha - 您的 ThemeSelectionIntent.swift 是否可能未添加到您的意图处理程序目标中?听起来就是这样。检查右窗格,如果那里看起来不错,转到目标,查看 Build Phases > Compile Sources 并确保它也在那里。
  • @asyncawait 你是对的!无论出于何种原因,在意图处理程序扩展中,意图定义已被添加为资源而不是代码。一旦找到它的代码。如果你写一个答案,我会给你赏金
  • @leanne 你绝对是在正确的轨道上,非常感谢你帮助我。最后,意图处理程序是目标的一部分,但作为资源而不是代码

标签: swift xcode widgetkit siri-intent


【解决方案1】:

您可以尝试更改 Widget 扩展中的构建设置 “构建设置”-> 搜索“意图类”-> 将语言更改为“Swift”并再次运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 2021-09-24
    • 2021-09-21
    • 2021-08-01
    • 2022-01-16
    • 2021-08-03
    • 2021-11-29
    • 2021-09-23
    相关资源
    最近更新 更多