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

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

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

Есть ли способ удалить ссылку, которая не существует? LOL

Update:

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

Непринятое исключение:

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

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

Ответ 1

Оказывается, бит на симуляторе iPhone не синхронизирован с XCode. Я создал Reset контент и настройки ", и все работает:) Кто знал?

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

for my case

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

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

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

Я просто сделал выбор, чтобы выбрать его, и все работает как шарм.

Ответ 5

У меня была такая же проблема, но она не была решена решением выше. Я закончил тем, что начал работать, удалив запись "Main baseboard file base name (iPad)" из моего файла info.plist.

Ответ 6

какое исправление для меня было t smply "удалить" ap в симуляторе и снова восстановить.

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

Ответ 7

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

Ответ 8

Если вы используете Cocoa pods, перетащите файлы .framework/.a в раздел "link binary with libraries".