.h файл не найден - PullRequest
       4

.h файл не найден

48 голосов
/ 04 марта 2011

Я работаю над приложением в xcode 4, и все шло отлично, а затем началось что-то странное. Каждый раз, когда я создаю новый класс (любой тип класса, ViewController, NSObject и т. Д.) И импортирую его в другой файл .m, я получаю файл ошибки "className.h", который не найден.

Файлы находятся в проекте, и смысл кода в xcode даже предоставляет имя класса, когда я набираю оператор #import.

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

Любые идеи, это сводит меня с ума!

Ответы [ 13 ]

40 голосов
/ 04 октября 2012

У меня была такая же проблема, и я попробовал вышеуказанные решения. То, что сработало для меня, было чистым проектом.

В строке меню перейти к ...

Продукт -> Чистый

Когда это будет завершено, удерживайте нажатой клавишу выбора и снова в строке меню перейдите к ...

Продукт -> Чистая папка сборки

Я не уверен, что очистка папки сборки была необходима. Для меня это стало привычкой делать и то, и другое. Я должен сделать это больше, чем хотелось бы в Xcode.

36 голосов
/ 18 июня 2011

Я столкнулся с той же проблемой, и следующие шаги решают мои проблемы:

  1. Перейти к цели проекта.
  2. Перейти на "Фазы сборки"
  3. Развернуть "Источники компиляции"
  4. удалить [имя файла, вызвавшее ошибку] ​​.m
  5. Добавить файл обратно.
14 голосов
/ 12 октября 2012

такая проблема возникает из-за циклического импорта . Скажем, если у вас есть файл заголовка А , и вы импортируете Bh и в Чч , если вы снова импортируете А * , то это покажет ошибка Ах файл не найден ...

11 голосов
/ 03 апреля 2015

Для меня это оказалось настройкой относительного пути.Когда я изменил настройку местоположения с «Относительно группы» на «Относительно проекта», неожиданно был найден файл заголовка.Я заметил в журнале, что путь, по которому он искал, был неверным, он, похоже, не проходил правильно дерево каталогов, что побудило меня попробовать другие относительные настройки.

enter image description here

4 голосов
/ 05 марта 2011

Должна быть проблема с программным обеспечением ... после нескольких попыток выхода из xcode и симулятора, оно снова работает.Я ничего не изменил.Но теперь автозаполнение перестало работать!Que sera sera.

3 голосов
/ 28 сентября 2013

возможно, вы используете #import "thing.h "вместо #import ('<>' используется для файлов фреймворка)

3 голосов
/ 29 февраля 2012

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

1 голос
/ 22 марта 2019

В инспекторе файлов я обнаружил, что мой новый путь к файлу .h не был в Pod/Classes/

0 голосов
/ 16 мая 2019

Я решил проблему, когда обнаружил, что при запуске типа import "FileName" происходит автозаполнение для некоторых заголовочных файлов, но не для всех.Я предполагаю, что файл, который не может заполнить автозаполнение, каким-то образом поврежден.

Затем я просто удаляю их из вкладки файлов XCode и снова перетаскиваю команду add, используя команду "Добавить файл".

0 голосов
/ 25 апреля 2019

Моя проблема заключалась в том, что я добавил модуль MetalPetal и не смог получить доступ к заголовку "MTIShaderLib.h" для создания пользовательских фильтров, хотя заголовок был объявлен как открытый . Я попробовал все выше и больше и больше и больше из других ответов, но проблема была указана в инструкциях по установке модуля, которые Я упустил из виду.

enter image description here

Мне нужно было перейти к значку моего основного приложения (blue icon), выбрать Build Settings, затем в поле поиска я набрал header search paths.

Под Metal Compiler - Build Options Я пошел на Header Search Paths и нажал arrow.

Я нажал debug (затем release впоследствии), и во всплывающем окне я нажал знак + внизу и ввел:

$ {PODS_CONFIGURATION_BUILD_DIR} /MetalPetal/MetalPetal.framework/Headers

Я сделал это для них обоих.

enter image description here

enter image description here

Проблема была решена после многих разочаровывающих часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...