每当我在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而无用吗?
答案 0 :(得分:37)
我通过以下方式解决了这个问题:
1)删除制作麻烦的InterfaceController文件,并在项目中的WatchKit Extension文件夹中再次创建它(不只是在Project导航器中的组中)。默认情况下,xcode会为您提供Watch App文件夹 - 您必须更改它。
2)在Interface Builder中设置类,以便模块设置为ProjectName_WatchKit_Extension
如果未设置模块,则xcode无法找到您的课程
答案 1 :(得分:22)
对于任何有这个的人。在创建课程时,必须将课程设置为正确的目标成员资格,即yourApp WatchKit Extension
而不是yourApp WatchKit App
。它也可以在界面构建器中的目标成员身份中进行编辑。
答案 2 :(得分:15)
在最近的8.2发布之后,我遇到了同样的问题。我必须去我的每个InterfaceControllers并将其自定义类模块调整为显示为选项的任何内容或" none"。
答案 3 :(得分:2)
在我的情况下,我将Watch Kit Extension
重命名为WatchKitExtension
,并且它在模拟器上成功运行,但在完整项目清理后无法运行。
感谢https://stackoverflow.com/a/29904047/104170
为了使其工作,我只需要在.storyboard
文件中指定正确的模块
答案 4 :(得分:2)
答案 5 :(得分:1)
创建扫视界面控制器时,请务必将其添加到Watch App Extension。这是我的问题。
答案 6 :(得分:1)
您需要在此处验证视图控制器是否在您的编译源中:选择项目>选择Watchkit Extension Target>构建阶段>编译来源
答案 7 :(得分:1)
我通过将Module设置为Watch_Extension
来解决它答案 8 :(得分:1)
这里的问题是我们为接口控制器设置了错误的模块。由于这些控制器属于Watch Extension目标,因此我们可以找到以下产品模块
该图以显示如何查找产品模块名称
有了模块名称后,只需继续为每个接口控制器进行设置
图片以显示如何设置产品名称
答案 9 :(得分:0)
确保在创建课程时创建EXTENSIONS的新Class成员。
答案 10 :(得分:0)
我通过清除该特定接口类的故事板中的模块名称来修复它。 (这是一个客观的c类)。
答案 11 :(得分:0)
点击我的观看故事板>接口控制器场景> Identity Inspector(中间图标,来自Xcode右侧菜单上的5个图标)>将模块设置为“[YourProjectName] Extension”为我工作!
答案 12 :(得分:0)
只需查看类和界面的目标。它应该设置为Extension all all
答案 13 :(得分:0)
这让我疯了几个小时。遵循了这里的所有建议,没有运气。
最终对我来说,应该是我应该做的-我清理了构建文件夹。
产品>清理构建文件夹
答案 14 :(得分:0)
确保情节提要中的模块名称与tagerts / XXX WatchKit App下的.appex文件相同 常规标签->框架,库和嵌入式内容。
答案 15 :(得分:0)
接受的答案对我不起作用。
我确实回答了这个问题。 https://stackoverflow.com/a/61517773/7345611
但是我确实将与此问题相关的部分放在这里:
最适合我的方法是:
转到Xcode左侧导航器窗格中的interface.storyboard
选择interfaceController顶部的黄色圆圈
现在该应用程序应该可以按预期运行。