Подтвердить что ты не робот

Xcode "Использование необъявленных идентификаторов", компиляция/выполняется просто отлично

У меня невероятно неприятная проблема, которая мешает моему документообороту. В моем проекте у меня все ошибки "User of uneclared identifier". Все они относятся к одному классу, в частности к классу "Тема". Я проверил любые циркулярные ссылки с моим импортом, ни один. Я действительно смущен.

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

enter image description here

Я пробовал очистить, удаляя полученные данные... Любые идеи?

4b9b3361

Ответ 1

У меня была такая же проблема, и я заметил, что все необъявленные идентификаторы были объявлены в файлах, которые были в моем файле pch.

С учетом этого я удалил одну из строк #import из файла pch и перекомпилировал, что не удалось, как ожидалось. Затем я вернул удаленную строку, перекомпилировал и скомпилировал ее со всеми ошибками.

Надеемся, что это простое решение поможет вам немного, если вышеупомянутые решения не будут.

Ответ 2

Подобные ошибки довольно распространены с Xcode, к сожалению. Было бы здорово, если бы он автоматически обновлял свой список ошибок все время, но это не всегда. Когда это произойдет, я настоятельно рекомендую вам перезапустить Xcode, который очистит его кеш-память и, надеюсь, решит ваши проблемы.

Ответ 3

Как вы включаете этот класс? В большинстве случаев я просто включаю класс явно в заголовок и/или тело - вместо файла *.pch. Тогда эта ошибка исчезнет в моем случае.

Также время от времени удаляет производные данные. Вы случайно изменили местоположение в настройках. Я также получил эту ошибку, когда я использую ramdisk для производных данных, а затем возвращаюсь к умолчанию. Это самый неприятный случай - поскольку он вызывает эту ошибку, а затем почти в каждом файле.

Эта ошибка, как представляется, происходит чаще в Xcode 4.4, чем предыдущие версии.

Ответ 4

Правильно ли вы включили файлы библиотеки? Взгляните на это. Иногда могут возникать проблемы с ARC, если мы не включаем правильный файл или что-то не получим или не подключаем интерфейс.

Ответ 5

Для меня проблема заключалась в том, что я создал файл UnityInterface.h/m для обработки интерфейса obj-c в С#. UnityInterface.h уже определен Unity. Я переименовал свой собственный UnityInterface в _UnityInterface, и теперь все работает.

Ответ 6

Просто опубликуйте это для тех, кто может столкнуться с этой проблемой позже, и не найдет ни одного из этих решений: Если у вас есть какие-либо pragma-отмеченные операторы #if, которые выполняются только в том случае, если программа находится в режиме отладки, это явно приведет к тому, что все объявленные внутри них не будут объявлены при попытке архивирования/экспорта.

Ответ 7

У меня была та же проблема. Закрытие и открытие XCode не помогло.

Я решил это, проверив ошибки в других целях и исправив их (у меня было множество ошибок в моей целевой тестовой программе). Также я переместил ссылки заголовка из h файлов в m файлов. Но я уверен, что первое, что было критично.

Ответ 8

Для других, которые столкнулись с одной и той же проблемой и попробовали все решения выше, без результата, возможно, вам стоит попробовать что-то вроде того, что я сделал. Я решил проблему просто отключив свой iPhone USB-кабель от своего Mac, а затем снова подключил этот кабель. После этого снова восстановлены и все необъявленные ошибки идентификатора исчезли.

Ответ 9

У меня была такая же ошибка. В моем случае это было в этой строке кода:

- (void)playerItemDidReachEnd:(NSNotification *)notification {
      // some code
  }

В моем сообщении об ошибке говорится:

Use of undeclared identifier 'playerItemDidReachEnd'

Я попытался добавить эту строку в файл .h:

- (void)playerItemDidReachEnd:(NSNotification *)notification;

Я очистил его, я перезагрузил свой macbook, и я все еще получал ошибку.

Наконец, я решил попробовать удалить строку в файле .h. Затем я вставлял его в текстовый файл, а затем копировал и вставлял его обратно в файл .h.

Теперь я убираю и VOILA '!!! больше ошибок. Идите фигуру. Иногда это происходит в VBA. Как-то кажется, что в строке кода нет невидимого форматирования. Поэтому я подумал, что это может происходить с xCode. Вырезая его, вставив в текстовый файл, вырезая текстовый файл и вставив его обратно в нужное место, исправил его в моем случае.

---- ОБНОВЛЕНИЕ ----- Выше было опубликовано как мой ответ. Извиняется, видимо, что-то еще не так.

После очистки - мои ОШИБКИ исчезли. Теперь я попытался создать и запустить приложение. ОШИБКИ НАЗАД! Поэтому на этот раз я повторно создал файлы классов после вырезания всего текста и вставки его в текстовый файл. Я сделал это для обоих файлов .m и .h. Но теперь ошибки снова возвращаются после попытки запуска. ПРОСТИ. Я не знаю, как удалить этот текст, потому что это не ответ.

Пытался создать и запустить мое приложение. ОШИБКИ НАЗАД НАЗАД!

Также была ошибка msg, что у меня отсутствовала скобка (}). Наконец, я смотрю на метод непосредственно перед этим методом, и, конечно же, ему не хватает конечной скобки! Вот и все!

Ответ 10

Может быть немного поздно, чтобы ответить.

У меня была эта проблема совсем недавно. Я исправляю это, обновляя свою ОС и затем обновляя Xcode. Я пытался обновить Xcode в одиночку, но этого не произошло, потому что Xcode 9.4 требует ОС High Sierra 10.13. *

Счастливого обновления :)

Ответ 11

Это ошибка времени компиляции

Use of undeclared identifier '<class_name>'

Я столкнулся с этой проблемой при разработке собственной платформы и приложения. Objective-C потребитель → Objective-C статическая структура

Навигатор отчетов имел четкое описание

umbrella header for module '<module_name>' does not include header '<class_name>.h'

Решением было просто добавить #import <class_name>.h в зонтичный заголовок в целевой структуре