Код Xcode 4 не работает - PullRequest
       50

Код Xcode 4 не работает

77 голосов
/ 25 марта 2011

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

  • Очистить / восстановить
  • Удалить производные данные
  • Установка документации 4.3
  • Перезагрузка

Без всякой удачи.

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

Ответы [ 13 ]

128 голосов
/ 05 июня 2011

Попробуйте это:

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

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

108 голосов
/ 17 ноября 2011

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

  • Закройте проект, оставив XCode все еще работающим.

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

  • Выйдите из XCode.

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

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

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

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

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

26 голосов
/ 21 апреля 2012

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

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

  1. Найдите файл префикса: "ProjectName_prefix.pch".
  2. Закомментируйте некоторую строку.(в основном измените его)
  3. Создайте свой проект, не имеет значения, если он потерпит неудачу.
  4. Раскомментируйте его.
  5. Создайте заново.

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

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

5 голосов
/ 06 июля 2012

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

Я выяснил, что настоящая причина в Target's *1004* Настройки сборки.Я переместил все с путей поиска заголовка на пути поиска заголовка пользователя , и это исправлено.В моем случае, фреймворк, с которым я работаю, это RestKit.

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

4 голосов
/ 15 сентября 2012

Вы можете решить эту проблему, изменив настройки сборки следующим образом: Заголовки префикса прекомпиляции: НЕТ

3 голосов
/ 16 мая 2012

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

2 голосов
/ 12 марта 2012

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

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

2 голосов
/ 21 августа 2011

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

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

1 голос
/ 15 апреля 2011

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

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

0 голосов
/ 20 августа 2013

Для меня это произошло просто потому, что у файла не было целевого членства. Если первые несколько ответов не сработали, перейдите в файл .m (предположительно, у вас возникли проблемы с этим файлом), откройте представление Утилиты (Правка -> Утилиты -> Показать файл). Инспектор) и в разделе «Целевое членство» отметьте цель, к которой должен принадлежать этот файл.

...