每当我在WKIInterfaceController
的子类中建立任何连接时,我都会在模拟器中显示错误WatchKit error - unable to find interface controller class 'myClass' to instantiate
和活动指示器,并且视图不会加载。断开所有连接并正确显示视图但仍然出现错误
试着
Unable to find interface controller class 'InterfaceController' to instantiate
WatchKit: unable to find interface controller class
WatchKit reloadRootControllersWithNames causing error, with pageController or after push/pop
两个链接提示一个错误,如果它是一个错误,这肯定不会出现在XCode的发布版本上,并且每个人都会遇到相同的行为呈现watcKit几乎没用?
我解决了这个问题:
1)删除制造麻烦的InterfaceController文件并在项目中的WatchKit Extension文件夹中再次创建它(不只是在Project导航器中的组中)。默认情况下,xcode会为您提供Watch App文件夹 - 您必须更改它。
2)在Interface Builder中设置类,以便将模块设置为ProjectName_WatchKit_Extension
如果未设置模块 - xcode将无法找到您的课程
这里的问题是我们错误地为接口控制器设置模块。由于这些控制器属于Watch Extension目标,我们可以找到产品模块,如下所示
该图显示了如何查找产品模块名称
获得模块名称后,只需继续为每个接口控制器设置它
图像显示如何设置产品名称
确保在创建类时创建EXTENSIONS的新Class成员。
我通过清除该特定接口类的故事板中的模块名称来修复它。 (这是一个客观的c类)。
单击我的Watch故事板>界面控制器场景> Identity Inspector(中间图标,从Xcode右侧菜单上显示的5个图标)>将模块设置为“[YourProjectName] Extension”为我工作!
只需查看类和接口的目标。它应该被设置为扩展,这就是全部
只是开了几个小时就疯狂了。按照这里的所有建议,没有运气。
最让我失望的是我本来应该做的事情 - 我清理了构建文件夹。
产品>清洁构建文件夹
对于其他拥有此权限的人。在创建类时,必须将类设置为正确的目标成员资格,即yourApp WatchKit Extension
而不是yourApp WatchKit App
。它也可以在界面构建器中的目标成员身份中进行编辑。
在最近的8.2发布之后,我遇到了同样的问题。我不得不去我的每个InterfaceControllers并将其自定义类模块调整为显示为选项或“无”的任何内容。
在我的情况下,我将Watch Kit Extension
重命名为WatchKitExtension
,它在模拟器上成功运行,但在完整项目清理后无法运行。
感谢https://stackoverflow.com/a/29904047/104170。
为了使它工作,我只需要在我的.storyboard
文件中指定正确的模块
创建扫视界面控制器时,请务必将其添加到Watch App Extension。这是我的问题。
您需要在此处验证视图控制器是否在您的编译源中:选择Project> Select Watchkit Extension Target> Build Phases> Compile Sources
我通过将Module设置为Watch_Extension来解决它