Неизвестный класс в файле Interface Builder

Я создал довольно простое приложение для iPhone. Затем решил, что создам версию приложения для iPad (универсальную). Пытался использовать опцию «апгрейд», но ничего не вышло. Поэтому я создал отдельное универсальное приложение и скопировал файлы xib в свой проект. Это тоже не сработало, поэтому я удалил файлы xib (и связанные с ними файлы .m и .h.

Теперь, когда я запускаю версию для iPhone, она дает мне неизвестный класс iPadSample1AppDelegate в файле Interface Builder. error и UISplitViewController поддерживается только при запуске под UIUserInterfaceIdiomPad, а затем завершается. Итак, я восстановил снимок, сделанный перед тем, как отправиться в приключение с iPad ... Я получаю ту же ошибку. Я пробовал поиск XCode и поиск Spotlight. Нигде в моем проекте нет ссылки на этот класс или UISplitViewController, но по какой-то причине XCode считает, что есть.

Есть ли способ удалить несуществующую ссылку? ржу не могу

Обновлять:

Это может иметь какое-то отношение к моей среде XCode, которая была взломана. Найдя здесь несколько других сообщений, я попробовал Clean All / Build / Touch, и когда я коснулся, я получил следующую ошибку в XCode:

Неперехваченное исключение:

- [XCBuildLogWarningMessage setFileLocations:]: нераспознанный селектор отправлен в экземпляр 0x2014dd0a0

В любом случае переустановить XCode, не испортив все остальное?


person tg2    schedule 05.08.2010    source источник


Ответы (8)


Оказывается, биты на симуляторе iPhone не были синхронизированы с XCode. Я сделал «Сброс содержимого и настроек», и все работает :) Кто знал?

person tg2    schedule 05.08.2010
comment
Спасибо! Вы только что сэкономили мне время, пытаясь отладить это дальше. Теперь это имеет смысл, когда информация об отладке, которую мы видим, объявляется из симулятора iOS. Но что не было очевидным, так это то, что приложение каждый раз не развертывалось заново. Все это очень хорошо очищает производные данные в представлении организатора XCode 4, но если файлы IB в симуляторе iOS все еще старые, неудивительно, что они выдают странную ошибку. Спасибо за открытие - person jbjon; 21.06.2011
comment
У меня тоже была эта проблема, но это решение не помогло мне. Моя проблема была связана с тем, что класс не был включен в Ресурсы Copy Bundle. Ваше здоровье, - person Leandro Alves; 07.01.2012
comment
Мой симптом: Рефакторинг- ›Переименование, сбой при запуске с неизвестным классом: TheOneYouDeletedDerp. Похоже, есть аналогичные проблемы с другими допустимыми решениями, но моя была исправлена ​​с помощью этого решения Reset, если кто-то сделал то же самое. - person CBGraham; 18.07.2012
comment
Я просто удалил приложение из симулятора, и это сработало. - person Nate Potter; 03.09.2012
comment
Спас меня через 2 часа отладки! использовал ipod и удалил приложение, это было решено, спасибо! - person shem; 10.10.2012

Если вы перейдете к этапам сборки в рамках своих целей, вы увидите источники компиляции. Убедитесь, что в списке перечислены все необходимые вам файлы. Если нет, просто добавьте его сюда, и предупреждение исчезнет.

person embinder    schedule 14.04.2012
comment
Исправил для меня. Xcode имеет проблемы с добавлением / перемещением файлов. - person Thromordyn; 25.04.2012
comment
Спасибо, избавили меня от множества возможных головных болей. - person Jens Bergvall; 30.05.2012
comment
Добавление файлов в источники компиляции помогло мне, @Thromordyn может быть прав, что Xcode не добавляет файлы должным образом. - person zanussi; 02.06.2012
comment
Это сработало для меня. Я переставил исходные файлы в реальную иерархию папок, поэтому у меня нет длинного списка файлов в одной папке (почему это не поведение xcode по умолчанию?). Впоследствии большинство моих исходных файлов просто не компилировалось, даже если они находятся в решении xcode! - person Typo Johnson; 19.05.2013

Я провел небольшое исследование и выяснил, что

for my case

Мне просто нужно щелкнуть правой кнопкой мыши файл с жалобой в навигаторе проекта.

Выбираем View/Utilities/Show File Inspector. И почему-то не был выбран Target Membership.

Вот почему компоновщик говорит, что он не знает о существовании класса.

Просто поставил галочку выбрать и все работает как шарм.

person harryngh    schedule 30.09.2012
comment
tyvm - вы сэкономили мне 2 часа отладки - IDE прекрасны, когда вы знаете все проблемы, но часто PITA, когда вы только учитесь ... - person kfmfe04; 21.10.2012

Щелкните правой кнопкой мыши на Раскадровке -> Открыть как -> Исходный код.

Найдите свое неизвестное имя класса в исходном файле раскадровки. Это может быть из-за того, что вы случайно назначили собственное имя класса для одного из ваших подклассов UIView '.

person user1685442    schedule 20.02.2013
comment
Собственно мой случай. И хорошо знать новый способ открыть файл xib - person Philip007; 01.03.2013
comment
это должен быть правильный ответ. Спасибо - person Shobhakar Tiwari; 22.07.2015

У меня была такая же проблема, но она не была решена указанным выше решением. В итоге я заставил его работать, удалив запись «Основное имя файла раскадровки (iPad)» из моего файла info.plist.

person Swindler    schedule 03.02.2012

что исправило это для меня, так это просто "удалить" AP в симуляторе и заново собрать.

Вероятно, этот класс все еще повторяется в локальных настройках симулятора iphone.

person Slaine    schedule 09.03.2013

В моем случае эта ошибка появилась после рефакторинга имени класса. Как-то имя класса не изменилось в файле .xib. Я открыл этот xib-файл в Textedit и заменил весь OldClassVC на NewClassVC. Затем я сохранил xib-файл и очистил проект перед новой сборкой. Проект работает хорошо.

person fir    schedule 05.10.2013

Если вы используете какао-модули, перетащите файлы .framework / .a в раздел «связать двоичный файл с библиотеками» вашего проекта.

person Rajat Talwar    schedule 23.06.2014