Проблема с автозаполнением кода / подсветкой синтаксиса в Xcode 4.x - PullRequest
17 голосов
/ 20 марта 2012

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

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

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

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

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

Ответы [ 8 ]

43 голосов
/ 20 апреля 2012

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

ПЕРЕД ДЕЛАМИ ЧТО-ТО : убедитесь, что ALL цели в ALL проектов в вашей рабочей области скомпилированы правильно.Это без ЛЮБЫХ предупреждений.Это был большой провал с моей стороны - у меня были старые цели, которые просто не компилировались.Некоторые из них были неиспользованными и могли быть удалены, другие были не-ARC, которые использовали модули в целях, которые были преобразованы в ARC (также преобразовали эти цели), а некоторые просто нуждались в исправлении кода.

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

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

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

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

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

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

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

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

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

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

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

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

5 голосов
/ 04 июня 2012

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

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

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

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

Бывает так редко, что это относительно безболезненно.

4 голосов
/ 06 марта 2013

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

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

Поиск «GCC_INCREASE_PRECOMPILED_HEADER_SHARING» в настройках сборки и измените его на ДА. - Это сработало для меня.

GCC_INCREASE_PRECOMPILED_HEADER_SHARING

2 голосов
/ 18 ноября 2013

Это действительно неловко.По ошибке я снял галочку в «Настройки XCode»> «Редактирование текста»> «Завершение кода» и попробовал каждое возможное решение этого вопроса.

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

Xcode autocomplete preference

0 голосов
/ 15 мая 2017

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

enter image description here

0 голосов
/ 19 ноября 2014

Недостаточно удалить только производные данные проекта, который терпит неудачу

Мне пришлось удалить все производные данные всех проектов, выполнить очистку проекта и перезапустить Xcode

Amazing

0 голосов
/ 30 марта 2012

Вы можете решить эту проблему следующим образом:

  1. Закомментируйте все записи в файле .pch проекта (обычно, когда вы делаете это, Xcode теперь выбирает автозаполнение)
  2. Очистка проекта
  3. Возобновление .pch файла назад
  4. Перестройка проекта

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

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