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