Безумие XCode: Попытка скомпилировать файл, на который нет ссылок и который не существует - PullRequest
3 голосов
/ 05 октября 2011

Я довольно близок к тому, чтобы пойти на убийственное неистовство по этому поводу, поэтому, если кто-то может мне помочь, это может спасти некоторые жизни ...

У меня довольно сложная модель CoreData, в которой всегда была сущность с именем Anchor. Недавно я решил, что пара атрибутов не нужна, поэтому я удалил их из модели, а затем сгенерировал новые файлы NSManagedObject поверх старых. Тогда весь ад вырвался на свободу.

Первоначальная ошибка компиляции была для дублирующего определения Anchor, которое меня не озадачило. У меня была эта ошибка раньше, и это было потому, что я случайно включил файл .m, поэтому я искал свой проект для любой ссылки на Anchor.m. Ничего.

Я попытался удалить файлы Anchor.h и .m, чтобы я мог видеть, что происходит, но вместо того, чтобы получить кучу ошибок компиляции "не удалось найти Anchor.h", он компилировался нормально до связывания, а затем жаловался, что он не мог найти Anchor.m. Я сделал чистку, а затем восстановил и все еще получил ту же ошибку. Перезагрузите Mac. Та же ошибка.

Теперь я переименовал сущность в модели и создал для этого новый набор файлов. Я заменил все ссылки на заголовочный файл и изменил все ссылки на классы. Это все еще ищет Anchor.m. Я искал весь Mac и переименовал любые найденные копии Anchor.h и Anchor.m. Я очень громко кричал на Mac ... Я начинаю терять здравомыслие из-за этого ...

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

1 Ответ

4 голосов
/ 05 октября 2011

Предполагая, что вы удалили все ссылки на Anchor.h / .m в вашем файле project.pbxproj, еще одна вещь, которую нужно попробовать, - обнулить вашу папку DerivedData.Это может быть в нескольких местах, в зависимости от того, как у вас установлена ​​Xcode 4 (у меня она есть в ~ / Builds / Xcode4 / DerivedData), но эта папка хранит кучу промежуточных файлов / файлов кэша, связанных с вашими проектами, и в редких случаях, он будет поврежден, что приведет к неправильной сборке проектов или нарушению завершения кода.

...