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

Проблема с автозаполнением кода/подсветкой синтаксиса в XCode 4.x

У меня довольно странная проблема в XCode в одном из моих проектов.

Когда я начинаю писать свой код, я привык к автозавершению, предлагая для меня многочисленные записи. По какой-то причине со вчерашнего дня это перестало работать. Теперь я получаю странные записи автозаполнения, такие как "и", "the", "Andy", "MyCompanyName" и т.д.

Это никогда не случалось раньше, и поэтому я смущен тем, почему это произошло сейчас, и только по одному из моих проектов. Я искал этот сайт довольно долго для любых исправлений, и я попытался очистить Derived Data, выйти из XCode, удалить рабочую область и пользовательские файлы из проекта XCode и перезапустить, но после этого автозаполнение работает некоторое время, затем снова разрывается примерно через 30 секунд после кодирования.

Иногда я вижу автоматические решения, но просто текст (нет индикаторов классов), затем в других случаях он полностью перестает работать.

Кто-нибудь еще испытал что-то подобное и мог предоставить какое-то решение?

4b9b3361

Ответ 1

Я долгое время страдал от проекта, который продолжал терять автозаполнение и подсветку синтаксиса. Удаление папки "Производные данные" и перезапуск Xcode будут исправлять ее временно, и в конечном итоге это почти стало мышечной памятью. Моя проблема, казалось, усугублялась использованием рабочей области, содержащей несколько проектов, многие из которых зависели друг от друга. Оказывается, проблема была связана с индексом clang. Проект будет компилироваться чисто, но, глядя на вывод индексатора, он был завален ошибками. Исправляя ВСЕ, эти проблемы решены.

ПЕРЕД ДАЛЬНЕЙШЕЙ: убедитесь, что ВСЕ целевые объекты ВСЕ проекты в вашей рабочей области скомпилированы. Это без предупреждений ЛЮБОЕ. Это был большой провал с моей стороны - у меня были старые цели, которые просто не компилировались чисто. Некоторые из них были неиспользуемы и могут быть удалены, другие были не ARC, которые использовали модули в целевых объектах, которые были преобразованы в ARC (также преобразовали эти цели), а некоторые просто нуждались в исправлении кода.

После того, как вы разрешили ВСЕ эти проблемы, первое, что нам нужно знать, - это то, где индексир не работает, выполнив полный индекс вашего проекта.

  • Сначала убедитесь, что Xcode закрыт, затем включите предупреждение индексатора уровня сообщения, введя в терминал:

     defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3
    
  • Затем найдите папку Derived Data для вашего проекта/рабочей области (возможно, ~/Library/Developer/Xcode/DerivedData/ название вашего проекта - несколько тарабарщин) и удалите его (но продолжайте папка Derived Data открыта, потому что вам, вероятно, придется вернуться и сделать это несколько раз.

  • Затем откройте приложение "Консоль" и нажмите "Очистить дисплей", а фильтр "IDE" отобразит только те сообщения, которые нас интересуют.

  • Наконец, откройте Xcode и проект/рабочее пространство, которые вызывают проблемы, и вы увидите, что консоль начинает заполнять сообщения.

  • Чтобы искать ошибки, измените фильтр консоли на "error:" - наша цель - уменьшить их до нуля.

  • В большинстве ошибок, которые я обнаружил, отсутствовали файлы заголовков. Сам Xcode кажется умнее индексатора. Кажется, он способен находить и включать заголовочные файлы из других проектов, которые не имеет индексатора.

  • Итак, где угодно, вы видите "фатальную ошибку:" файл somefile.h "не найден", убедитесь, что вы добавили путь к этому файлу в пути поиска заголовка пользователя в целевой строить настройки. Лучший способ, который я нашел для этого, - дважды щелкнуть по полю, чтобы получить всплывающее окно, и перетащить папку из искателя в нее. Это добавляет новую запись, но, предполагая ее в той же рабочей области, она добавляет относительный путь к файлу (это важно, если вы переместите папку рабочего пространства в будущем). Если у вас есть несколько целей для одного и того же проекта, вы можете установить путь поиска на проекте, а не на целевой уровень, и установить целевые пути поиска на $(унаследованный).

  • У вас могут быть похожие проблемы с библиотеками или фреймворками - снова обновите соответствующий путь поиска.

  • После исправления некоторых ошибок закройте Xcode, очистите консоль, удалите проект Derived Data, откройте Xcode и дайте ему индекс снова.

  • Повторяйте до тех пор, пока все ваши ошибки не исчезнут.

Как только вы окажетесь в этом хорошем месте, автозаполнение и подсветка синтаксиса кода должны работать как шарм:)

Ответ 2

По-прежнему бывает со мной иногда на Xcode 4.3.2,

Я просто делаю это:

Xcode > Организатоp > Проекты > Выберите проект > Производные данные > Нажмите кнопку удаления

Это также удаляет индексирование. Затем я обычно перезапускаю Xcode и запускает повторную индексацию, и снова получаю подсветку синтаксиса и автозаполнение. (Я даже не перезапускаю Xcode, но оправдание, чтобы перерыв от запуска на экране в течение нескольких часов - это всегда хорошо для ваших глазных шаров!)

Это случается так редко, что это относительно безболезненно.

Ответ 3

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

Ответ 4

Найти 'GCC_INCREASE_PRECOMPILED_HEADER_SHARING' в настройках сборки и измените его на YES. - Это сработало для меня.

GCC_INCREASE_PRECOMPILED_HEADER_SHARING

Ответ 5

Это действительно неловко. По ошибке я снял галочку в приложении XCode Prefernces > Text Editing > Code Cmpletion, и я пробовал все возможные решения этого. enter image description here

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

Ответ 6

Возможно, вы сможете исправить эту проблему:

  • Комментирование всех записей в файле проекта .pch(обычно, когда вы это делаете, Xcode теперь будет выбирать автозаполнение)
  • Очистка проекта
  • Некоммерческие .pch файлы назад
  • Реконструкция проекта

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

Ответ 7

Удаление только производных данных проекта, который не работает, недостаточно [/p >

Мне пришлось удалить все Derived Data всех проектов, выполнить проект Clean и перезапустить XCode

Удивительный

Ответ 8

Что это было? Я не получал ошибку File not found от компилятора. Исправлено это путем удаления некоторых отсутствующих ссылок на файлы из UnitTest и UITestTarget из Compiler Sources на Project Build Phases.

введите описание изображения здесь