无法实例化 class _TtC12STracker23InfoInterfaceController

Couldn't instantiate class _TtC12STracker23InfoInterfaceController

我尝试构建我的手表应用程序,但我一直收到错误消息

createViewController:className:properties:contextID:info:gestureDescriptions:
clientIdentifier:]:2916: Critical failure. Simulating crash: Condition failed:"NO". 
Couldn't instantiate class _TtC12STracker23InfoInterfaceController

我不得不在某个时候重命名我的项目,根据我的研究,这可能是问题的原因。我从头开始重新创建了 Interface.storyboard 和 InfoInterfaceController 但它没有帮助。

所以我通过删除所有监视目标和文件并重新创建它们解决了问题

这不是解决此类问题的好方法,特别是当有人拥有更大的 WatchOS App 项目并且删除所有内容并重新创建是荒谬且耗时的时候。

首先按照 Luke West 的回答中的步骤检查您是否正确重命名了项目:

然后执行以下步骤:

  1. 转到位于 Xcode

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

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

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

这是由于 Module 将指向 Watch App 而不是 Extension,因为这些所有文件都存在于 Extension Module 中,您可以直接更改 Watch StoryBoard 文件的模块 InterfaceController、NotificationController 以及任何默认创建的接口。