Неисправность кода Xcode 4 не работает

Я запускаю "старый" проект Xcode 3 в Xcode 4, и смысл кода не работает для моих собственных классов. Я пробовал следующее:

  • Clean/восстановление
  • Удалить производные данные
  • Установка документации 4.3
  • Restart

Без везения.

Иногда смысл кода работает, но в основном я просто получаю "No Completions".

Ответ 1

Попробуйте следующее:

Откройте "Организатор", затем вкладку "Проект".

Очистите "Производные данные". Xcode должен повторно проиндексировать ваш проект, тогда и смысл кода должен работать. По крайней мере, работал на меня.

Ответ 2

Я знаю, что это поздно, но для справки: http://sealedabstract.com/code/when-xcode-4s-code-completion-autocomplete-breaks/

  • Закройте проект, оставив XCode все еще запущенным.

  • Откройте окно "Организатор XCodes", перейдите на вкладку "Проекты", выберите нужный проект и нажмите кнопку "Удалить" рядом с "Производные данные".

  • Закройте XCode.

  • Перейдите к файлу проекта .xcodeproject в Finder. Щелкните правой кнопкой мыши, выберите "Показать содержимое пакета".

  • Оставьте файл project.pbxproj, но удалите файл project.xcworkspace, любые файлы .pbxuser и всю папку userdata.

  • Откройте проект в XCode. Вы увидите, что XCode едет высоко на использование ЦП в течение 10-60 секунд, в зависимости от размера вашего проекта. В окне активности будет указано "Индексирование"

  • Когда ваш пик процессора вернется на землю, завершение кода снова будет работать.

Там много удалений, поэтому будьте осторожны, но это определенно сработало для меня.

Ответ 3

Я делал это, и он работал несколько раз для меня (после того, как вы попытались все это выше).

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

  • Найдите свой префиксный файл: "ProjectName_prefix.pch".
  • Прокомментируйте некоторые строки. (в основном изменить его)
  • Создайте свой проект, неважно, если он потерпит неудачу или нет.
  • Раскомментируйте его.
  • Создайте снова.

Я делаю ставку только на шаг 2 (измените префикс), что он делает, но это, по сути, возвращает вас к запуску. Внезапно все магически перекрашивает себя и выполняет функции.

Удачи, если это не исправить, возможно, попробуйте сделать это с вашими файлами pch зависимости (три20 или FB api's)

Ответ 4

Очистка "Производных данных" работает только для меня. Я должен это сделать, а затем перезапустить Xcode, как 3-4 раза в день, чтобы снова использовать код.

Я выяснил, что настоящая причина заключается в настройках Target. Я переместил все из Контуры поиска заголовков в Пути поиска заголовка пользователя, и он исправлен. В моем случае рамкой, с которой я работаю, является RestKit.

Кстати, я придумал это, потому что добавлял в проект еще один проект (QuickDialog), и мне было любопытно, что это использует Пути поиска заголовка пользователя, но не Контуры поиска заголовков. Вот разница между ними.

Ответ 5

Вы можете исправить эту проблему с помощью настроек сборки сборки, таких как PreCompile Prefix Headers: NO

Ответ 6

FYI, если один файл не имеет смысла кода, но остальная часть вашего проекта делает это, проверьте его добавление к цели. Как только я это сделал, я получил код в этом файле.

Ответ 7

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

Это произошло, когда я добавил новый класс Objective-C, и смысл кода не работает только в недавно добавленных файлах .m и .h(при последнем обновлении XCode 4 во время этого сообщения).

Ответ 8

Закройте все окна xcode

Удалите все ваши проекты из xcode > window > организатор и перезапустите проект. Теперь он будет правильно оценивать и индексировать ваш проект.

Ответ 9

Я написал об этом подробно здесь.

В основном мое исправление заключалось в том, что с локализацией. Я обновился с xcode 3.2.5 до xcode 4, а затем вкрутился со встроенным конструктором интерфейса и случайно включил локализацию для XIB файла, который поместил мои исходные файлы в каталог en.lproj. Переместив их обратно в папку Classes, он отлично работал.

Ответ 10

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

Конечно, я пробовал решения, предлагаемые в этом посте, и никто из них не работал. Но предложение о переносе местоположения проекта в Finder привело к некоторому кодовому смыслу, но предложения не имели никакого смысла. Я закончил удаление моего проекта и повторно клонировал его из репозитория git. Это отбросило кодовое чувство для меня...

Ответ 11

Я открываю второй проект в фоновом режиме всякий раз, когда мое считывание кода Xcode перестает работать (обычно он работает в первый раз, когда я открываю проект, но через некоторое время смысл кода больше не работает). Поэтому я должен открыть второй проект в Xcode. Xcode начнет индексировать второй проект, и волшебный смысл кода для моего основного проекта вернется.

Запуск Xcode 4.3.1 на Lion

Надеюсь, это поможет кому-то.

Ответ 12

Из этот комментарий здесь Я смог отладить проблему на моем конце, это был флаг bad -w, который препроцессор clang не был должным образом признан. В принципе, запуск

defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

в терминале увеличивает значение указателя и помогает вам отслеживать проблемы. Откройте Console.app и найдите сообщения из Xcode, строка поиска IDEIndexingClangInvocation помогла мне найти их.

Ответ 13

Для меня это произошло просто потому, что у файла не было целевого членства. Если первые несколько ответов не сработали для вас, перейдите в ваш .m файл (предположительно, этот файл, с которым вы столкнулись), откройте представление "Утилиты" ( "Редактировать" → "Утилиты" → "Показать инспектор файлов" ) и в разделе "Цель Членство" проверьте цель, к которой вы хотите принадлежать этому файлу.