WatchKit 错误 - 无法找到接口控制器 class '' 来实例化

WatchKit error - unable to find interface controller class '' to instantiate

每当我在 WKIInterfaceController 的子类中建立任何连接时,我都会收到错误 WatchKit error - unable to find interface controller class 'myClass' to instantiate 并且 activity 指示器显示在模拟器中,并且视图不会加载。断开所有连接,视图显示正确但仍然出现错误

尝试过

WatchKit: unable to find interface controller class

两个链接暗示了一个错误,如果它是一个错误,那么肯定不会出现在 XCode 的发布版本中,并且每个人都会遇到相同的行为导致 watcKit 几乎毫无用处?

我在最近的 8.2 版本发布后遇到了同样的问题。我必须转到我的每个 InterfaceControllers 并将其自定义 class 模块调整为显示为选项或 "none".

的任何内容

对于拥有此功能的任何其他人。在创建 class 时,class 必须设置为正确的目标成员资格,即 yourApp WatchKit Extension 而不是 yourApp WatchKit App。它也可以在界面构建器中的目标成员资格中进行编辑。

我通过以下方式解决了这个问题:

1) 删除有问题的 InterfaceController 文件并在项目中的 WatchKit Extension 文件夹中重新创建它(不仅仅是在项目导航器中的组中)。默认情况下 xcode 为您提供 Watch App 文件夹 - 您必须更改它。

2) 在 Interface Builder 中设置 class 以便 module 设置为 ProjectName_WatchKit_Extension

如果未设置 模块 - xcode 将无法找到您的 class

在我的例子中,我将 Watch Kit Extension 重命名为 WatchKitExtension,它在模拟器上 运行 成功,但在整个项目清理后 运行 失败。
感谢 .
为了让它工作,我只需要在我的 .storyboard 文件

中指定正确的模块

确保在创建 class 时将新的 Class 成员添加到 EXTENSIONS。

我通过清除情节提要中该特定界面的模块名称来修复它 class。 (这是一个 objective-c class)。

创建 glance 界面控制器时,请务必将其添加到 Watch App Extension。这是我的问题。

您需要在此处验证视图控制器是否在您的编译源中:Select 项目 > Select Watchkit 扩展目标 > 构建阶段 > 编译源

在我的 Watch 故事板中单击 > 界面控制器场景 > 身份检查器(中间图标,来自 Xcode 右侧菜单上出现的 5 个图标)> 将模块设置为“[YourProjectName]Extension “对我有用!

只需查看 target classinterface。应该设置为Extension that's all

我通过将 Module 设置为 Watch_Extension

解决了这个问题

在 WatchOS 中添加新的 界面控制器 后,由于错误

而出现上述问题

"Module Name in Custom Class" :-

After changing the module to extension above issue is resolved.

1. select your WKInterfaceController
2. select Inherit Module From Target

这里的问题是我们为接口控制器设置的模块不正确。由于这些控制器属于 Watch Extension 目标,我们可以找到如下产品模块

图像显示如何查找产品模块名称

一旦我们有了模块名称,就可以继续为每个接口控制器设置它

图片显示如何设置产品名称

这几个小时让我自己抓狂。遵循这里的所有建议,没有运气。

最终对我来说是我应该首先做的 - 我清理了构建文件夹。

产品 > 清理构建文件夹

确保故事板中的模块名称与tagerts/XXX WatchKit App下的.appex文件相同 常规选项卡 -> 框架、库和嵌入式内容。

已接受的答案对我不起作用。

我确实在这个 post 中完整地回答了它:

但是我确实把与这个问题相关的部分放在这里了:

对我有用的最佳方法是:

  1. 转到 interface.storyboard 位于 Xcode

  2. 中左侧导航窗格
  3. select interfaceController 上面的黄色圆圈

  4. 转到它的身份检查器
  5. 在 class 部分,通过重新键入 class 名称并按回车键将 class 重新分配给该 interfaceController,Xcode 将自动更新其下的模块部分。 (您所有的问题都出在模块部分,其中模块仍然分配有旧名称)
  6. 对所有 interfaceController 和 customClasses(如果有的话)以及您之前为其分配 class 的所有内容执行相同的过程。

现在应用应该 运行 符合预期。