Всякий раз, когда я делаю какие-либо подключения в моем подклассе WKIInterfaceController
я получаю ошибку WatchKit error - unable to find interface controller class 'myClass' to instantiate
а индикатор активности, отображаемый в симуляторе, и представление не загружается. Отключите все коннекты и отобразите отображение правильно, но все же получите ошибку
Пытался
Не удалось найти интерфейс контроллера класса InterfaceController для создания экземпляра
WatchKit: не удалось найти интерфейс класса контроллера
WatchKit reloadRootControllersWithNames вызывает ошибку, с помощью pageController или после push/pop
Две ссылки указывают на ошибку: если это ошибка, которая, несомненно, не будет присутствовать в версии XCode для выпуска, и все будут испытывать такое же поведение, что и watcKit, но все же бесполезно?
Ответ 1
Для всех, кто имеет это. Для создания класса должен быть установлен правильный целевой член, т. yourApp WatchKit Extension
а не yourApp WatchKit App
. Он также может быть отредактирован в целевом членстве в построителе интерфейса.
Ответ 2
Я решил эту проблему:
1) удаление проблемного файла InterfaceController и создание его снова в папке для WatchKit Extension в проекте (не только в группе в навигаторе проекта). По умолчанию xcode предоставляет папку Watch App - вам нужно ее изменить.
2) класс настройки в Interface Builder, чтобы модуль был установлен в ProjectName_WatchKit_Extension
Если модуль не установлен - xcode не сможет найти ваш класс
Ответ 3
У меня были такие же проблемы после недавнего выпуска в 8.2. Я должен был перейти к каждому из моих интерфейсных контроллеров и настроить свой собственный модуль класса на все, что было показано как опция или "none".
Ответ 4
После добавления нового контроллера интерфейса в WatchOS выше проблема возникает из-за неправильного
" Имя модуля в пользовательском классе ": -
![enter image description here]()
После изменения модуля на расширение выше проблема решена.
![enter image description here]()
Ответ 5
В моем случае я переименовал Watch Kit Extension
в WatchKitExtension
, и он WatchKitExtension
работал на симуляторе, но не смог запустить после полного очищения проекта.
Благодаря fooobar.com/questions/9861984/....
Чтобы заставить его работать, мне просто нужно было указать правильный модуль в моем файле .storyboard
Ответ 6
1. select your WKInterfaceController
2. select Inherit Module From Target
![enter image description here]()
Ответ 7
Когда вы создаете свой контроллер интерфейса взгляда, обязательно добавьте его в расширение приложения "Наблюдение". Это была моя проблема.
Ответ 8
Вам нужно проверить, что контроллер просмотра находится в вашем источнике компиляции: Выберите "Проект"> "Выбор цели для сторожевого экрана"> "Фазы сборки"> "Скомпилировать источники"
Ответ 9
Я решил это, установив модуль Watch_Extension
Ответ 10
Проблема в том, что мы неправильно установили модуль для контроллеров интерфейса. Так как эти контроллеры принадлежат к целевому расширению Watch, мы можем найти модуль продукта, как показано ниже
Изображение, показывающее, как найти название модуля продукта
![image to show how to find the product module name]()
Как только мы получим имя модуля, просто установите его для каждого контроллера интерфейса.
изображение, чтобы показать, как установить название продукта
![image to show how to set the product name]()
Ответ 11
Убедитесь, что вы создаете новый член класса EXTENSIONS во время создания класса.
Ответ 12
Я исправил его, очистив имя модуля в раскадровке для этого конкретного класса интерфейса. (Что является объектно-c-классом).
Ответ 13
Нажав на мою раскладную панель Watch> Контроллер интерфейса Scene> Identity Inspector (средний значок, из 5 значков, которые отображаются в меню справа от Xcode)> Установить модуль на "[YourProjectName] Extension" работал для меня!
Ответ 14
Просто взгляните на цель как для класса, так и для интерфейса. Он должен быть установлен в Extension, чтобы все
Ответ 15
Просто сводил себя с ума по этому на пару часов. Следовал всем предложениям здесь, не повезло.
Что для меня закончилось, так это то, что я должен был сделать в первую очередь - я почистил папку сборки.
Продукт> Чистая папка сборки
Ответ 16
Убедитесь, что имя модуля в раскадровке совпадает с именем файла .appex в приложении tagerts/XXX WatchKit
Вкладка "Общие" → "Каркасы, библиотеки и встроенный контент".