Код теряет синтаксический цвет в Xcode 4
Я только что обновился до нового Xcode 4, и код не окрашен, это должно быть.
Например, строка NSString
не окрашена в мой пользовательский код, но когда я переключаюсь на код Apple (например, NSString.h
), все хорошо окрашено.
Как я могу это исправить?
Ответы
Ответ 1
Это известная ошибка с последним XCode. Это происходит с некоторыми проектами, перенесенными из XCode 3.X в новую версию. Для некоторых людей это, похоже, помогает организатору, а на вкладке проекта удаляют производные данные для проекта, где смысл кода работает неправильно.
Если у вас небольшой проект, он также может помочь создать новый проект в XCode 4 и импортировать файлы из проекта XCode 3.
Обновление: XCode 4.0.1 немного улучшило ситуацию, по крайней мере, в некоторых моих проектах у меня есть синтаксическая раскраска и смысл кода. Но это еще далеко не исправлено.
Обновление 2: XCode 4.0.2 не сильно изменилось. Похоже, что проблема связана с подпроектами, в частности с статическими библиотеками. Согласно комментариям этого сообщения в блоге некоторые люди были успешными, изменяя пути поиска заголовков относительно абсолютных путей, например. вместо Foo/Bar
используйте $(SOURCE_ROOT)/Foo/Bar
. Это вместе с переключением всех проектов на формат XCode 3.1 и использование LLVM 2.0 для меня тоже много. Он еще не идеален, но полезен.
Обновление 3: После преобразования субпроектов в независимые проекты и размещения их в рабочей области (например, XCode 4 way) У меня теперь полная подсветка синтаксиса и завершение кода.
Моя текущая среда теперь является рабочим пространством XCode 4, при этом каждый проект является совместимым с 3.1 (в отличие от по умолчанию 3.2), LLVM GCC 4.2 (по умолчанию для системы) и пути поиска заголовка по-прежнему абсолютны (с использованием $(SOURCE_ROOT)/.../
).
Ответ 2
Я использовал макрос undefined, но те макросы, которые были определены в макросах препроцессора в настройках сборки. Таким образом, xcode4 не генерировал ошибок для этого макроса undefined.
Шаги, предпринятые для решения.
- Удалены макросы undefined, где я использовал те макросы undefined.
- Удалены повторяющиеся определения Маркоса.
- Удалены дубликаты ресурсов. (Я добавил такие же (многие файлы Thumbs.db) в проект.)
- Очистка и сборка.
если вы еще не получили цвет, переместите свой проект в другое место, я изменил его на рабочий стол.
После этих шагов я получил цвет в моих глазах.
Но это очень плохой вопрос. Я трачу много драгоценного времени. Я думаю, что эти шаги могут помочь вам.
Спасибо.
Ответ 3
У меня была такая же проблема с моей. Его игра cocos2d с коробкой и бурундуком. Было чертовски беспорядочно, чтобы проект распознавал и находил пути поиска пользователей в первую очередь, поэтому я не собирался их связывать.
Я хотел бы отметить, что у меня есть рекурсивные пути, и у меня есть относительные пути, и у меня все еще есть проблема. Это произошло, когда я добавил новую версию SDK сторонней стороны, которую я использовал. Это был Testflight 083, который я обновил до 1.0. Я удалил свою старую версию, но только удалил ссылки. Затем я вручную удалил его из finder. Импортировал новую папку SDKv1 и прочитал ее в моем проекте и удалил старый путь к папке SDK0, оставив только новый путь к папке SDK1. По какой-то причине я заметил, что, хотя в v083 я использовал #import в моем файле Prefix.pch, он все еще не признавал вызов метода из AppDelegate. Это означает, что #import в Prefix.pch по какой-то причине не работает. Мне пришлось добавить #import в мой файл AppDelegate по отдельности. Это дало мне дубликат #imports, как сказал Джива выше. Это звучит в моей голове.
Таким образом, решение заключалось в том, чтобы эффективно удалить дубликат #import в Prefix.pch, поэтому оставив его только в AppDelegate. Он повторно проиндексирован, и CodeSense работает снова. Спасибо Jeeva!
Ответ 4
Эта проблема сводило меня с ума, и я оставил надежду на ее исправление без какого-либо уродливого взлома конфигурации XCode. Я прошел через эту самую тему форума переполнение стека раз. Тогда однажды мне случайно удалось это исправить. Я не уверен, что вам нужны все эти шаги, но я нашел это верным способом исправления ошибок индексирования XCode:
В случае успеха сборки вы должны теперь снова выбрать соответствующий синтаксис. Надеюсь, вы, ребята, найдете это небольшое открытие столь же полезным, как и я:)
EDIT:
Я, вероятно, должен добавить, что подсветка синтаксиса иногда кажется переломанной, когда отладчик висит в симуляторе во время запуска приложения. Я просто стараюсь избегать этого, будучи более осторожным в том, чтобы позволить зависанию процесса.
EDIT2: (извините первый вклад)
Работает на XCode 4.6 и 4.6.2.