it-swarm.com.ru

Ошибка WatchKit - невозможно найти класс контроллера интерфейса для создания экземпляра

Всякий раз, когда я делаю какие-либо подключения в моем подклассе WKIInterfaceController, я получаю ошибку WatchKit error - unable to find interface controller class 'myClass' to instantiate и индикатор активности, показывающий в симуляторе, и представление не загружается. Отключите все соединения, и представление отображается правильно, но все равно выдает ошибку

Пытался 

Невозможно найти класс контроллера интерфейса 'InterfaceController' для создания экземпляра

WatchKit: невозможно найти класс контроллера интерфейса

WatchKit reloadRootControllersWithNames, вызывающий ошибку, с pageController или после Push/pop

Две ссылки указывают на ошибку. Если это ошибка, то она наверняка не будет присутствовать в релизной версии XCode, и все будут испытывать одинаковое поведение, делая рендеринг watcKit практически бесполезным?

16
JSA986

Для всех, кто имеет это. Класс должен быть установлен на правильное целевое членство, т.е. yourApp WatchKit Extension, а не yourApp WatchKit App при создании вашего класса. Это также может быть отредактировано в членстве Target в построителе интерфейса. 

22
JSA986

Я решил эту проблему путем: 

1) удаление проблемного файла InterfaceController и его повторное создание в папке для расширения WatchKit в проекте (а не только в группе в навигаторе проекта). По умолчанию xcode предоставляет вам папку «Watch App» - вы должны изменить ее. 

2) установка класса в Интерфейсном Разработчике так, чтобы module был установлен в ProjectName_WatchKit_Extension

Если модуль не установлен - xcode не сможет найти ваш класс

36
Aleksandr Shcherbakov

У меня были те же проблемы после недавнего выпуска 8.2. Я должен был перейти к каждому из моих InterfaceControllers и настроить его пользовательский модуль класса на то, что было показано в качестве опции или «нет».

14
devone

После добавления нового Interface controller в WatchOS возникла вышеуказанная проблема из-за неправильной 

"Имя модуля в пользовательском классе": -

 enter image description here

После изменения модуля на расширение вышеупомянутая проблема решена.

 enter image description here

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

enter image description here enter image description here

2
Kamani Jasmin

В моем случае я переименовал Watch Kit Extension в WatchKitExtension, и он успешно работал на симуляторе, но не удалось запустить после полной очистки проекта.
Благодаря https://stackoverflow.com/a/29904047/104170 .
Чтобы это работало, мне просто нужно было указать правильный модуль в моем файле .storyboard

2
tt.Kilew

При создании контроллера интерфейса glance обязательно добавьте его в расширение приложения Watch. Это была моя проблема. 

1
VaporwareWolf

Вы должны проверить, что контроллер представления находится в вашем источнике компиляции здесь: Выберите Проект> Выберите Цель расширения Watchkit> Этапы сборки> Источники компиляции

1
zaolian

Я решил это, установив Module в Watch_Extension

1
rgreso

Просто посмотрите target для обоих class и interface . Это должно быть установлено на расширение, вот и все

0
Ali

Убедитесь, что вы делаете новый член класса EXTENSIONS во время создания класса.

0
kavehmb

Проблема здесь в том, что мы неправильно установили модуль для контроллеров интерфейса. Так как эти контроллеры относятся к целевому расширению Watch, мы можем найти модуль продукта, как показано ниже

Изображение, показывающее, как найти название модуля продукта

image to show how to find the product module name

Как только мы получим имя модуля, просто установите его для каждого контроллера интерфейса.

изображение, чтобы показать, как установить название продукта

image to show how to set the product name

0
haikynguyen

Я исправил это, очистив имя модуля в раскадровке для этого определенного класса интерфейса. (Который является объективным классом).

0
basvk

Нажав на мою раскадровку часов> Интерфейсный контроллер Scene> Identity Inspector (средний значок из 5 значков, которые появляются в меню справа от XCode)> Установите модуль на «[YourProjectName] Extension», я работал!

0
Josh