Xcode 9 Автозаполнение Не Работает 100% - Частично Работает

сегодня утром Xcode 9.0 (9A235) показывает новую/странную коробку автозаполнения, которая совсем не такая, как раньше. Как получить полную коробку автозаполнения, чтобы автозаполнение выглядело так, как обычно?

enter image description here

14 ответов


попробуй:

  1. на Xcode > Настройки > Редактирование Текста
  2. В разделе завершение кода-снимите флажок "предлагать завершения при вводе"
  3. выйти из Xcode, а затем перезапустить Xcode.
  4. на Xcode > Настройки > Редактирование Текста снова
  5. выйти из Xcode, а затем перезапустить Xcode.
  6. Теперь перейдите к завершению кода и Регистрация 'предлагаю доработок пока печатаю.
  7. попробуйте ввести функцию библиотеки или перечисление и наслаждайтесь!

Удаление папки производных данных, казалось, исправило мою проблему. Благодаря этому сообщению:swift println () не показывает параметры автозаполнения при записи кода


вещи, чтобы попробовать:

1

выполните эту команду в каталоге проекта, если вы используете cocoapods:

rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;


2

Очистить Кэшированные Данные

очистить проект - > Cmd+Shift+K

очистить папку сборки - > Cmd+Shift+Option+K

если вы пропустили первый шаг:
Удалить Производные Данные
Xcode Preferences ->Locations ->
Символ Стрелки Принимает вам!--3--> -> Удалить Папку


3

Проверьте источники компиляции фазы сборки.

каждый .swift и в проект должен быть в этом списке или это не автозаполнение в этих файлах.


4

оптимизация редактора:

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

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

избегайте использования вывода типа, когда результат является сложным вычислением, и попробуйте разбить сложные вычисления на let this = smallerOperation заявления


Это может произойти, когда файл не является членом целевой. Откройте файл, где автозаполнение не работает, и покажите вкладку "утилиты" в правом верхнем углу Xcode (синий на скриншоте ниже). Screenshot of Xcode top right view buttons

Screenshot of Xcode Target Membership options

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


удаление файла из тестовых целей исправило мою проблему.


пожалуйста, попробуйте сделать это:

Выберите файл >> проверьте, добавлен ли файл в uitesting или UnitTesting targets (инспектор файлов - > целевое членство). Если это так, снимите эти два флажка и убедитесь, что выбрана только цель проекта. Затем создайте и попробуйте, если автозаполнение работает нормально.

Это работает для меня. Надеюсь, это кому-то поможет.


Это может быть из-за многих причин, одна из которых заключается в том, что из-за "проблемы с памятью", т. е. когда ваша система исчерпает память, это произойдет. Вы можете проверить использование памяти с помощью "Activity monitor" в mac.
Попробуйте очистить проект с помощью [command + shift + k]
Закройте XCode и запустите его снова и создайте его один раз, а затем начните печатать теперь автозаполнение должно работать нормально.


просто потерял день, пытаясь решить кошмар автозаполнения Xcode (9.2). Удаление производных данных, казалось, работало недолго, затем все вернулось. Перезагрузки и т. д. и другие предлагаемые вуду не смогли изменить ситуацию.

Я сдался и загрузил 30-дневную пробную версию AppCode из Jet Brains. Автозаполнение отлично работало там, и это, возможно, совпадение, но затем оно снова начало работать в моем проекте в Xcode. Не могу гарантировать, что это сработает...


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


для меня проблема возникла, когда я отбросил все изменения одного файла (под контролем источника > фиксация), который эффективно удалил файл. Это то, что я хотел, и я думал, что файл и все ссылки на него тоже будут удалены.

однако в навигаторе проекта все еще была ссылка на файл (отображается красным цветом). Удаление (Теперь несуществующего) файла в навигаторе проекта волшебным образом вернуло автоматическое завершение.

никакие чистки, удаление производных данных и т. д. помогло. Я только понял, что удаленный файл все еще отображается, когда я пытался построить свой проект, который, конечно, не удалось, потому что он не мог найти этот файл.

надеюсь, что это поможет кому-то сэкономить 30 минут :)


кажется, что файл специфичен в моем случае (Xcode 9.2) для меня исправление было:

  1. удалить файл проблемы (удалить ссылку)
  2. "очистить и построить"
  3. Добавить файл обратно в проект (я не проверял целей тестирования)
  4. снова построить

наконец, после 3 часов попыток все - автозаполнение работает как надо.


эта ссылка помогла мне. Откройте настройки сборки и заполните пути поиска framework. См. изображение ниже.

enter image description here


проблемы в основном из-за отсутствия местоположения некоторых файлов в project navigator.

  1. нажмите command+1, чтобы открыть
  2. проверьте, есть ли какие-либо отсутствующие файлы

или:

  1. удалить DerivedData (команда+shift+K)
  2. очистить папку сборки (команда+shift+опция+K)
  3. снова нажмите build (command+B)
  4. вы должны увидеть ошибку сборки, которую Xcode не смог найти файлы, которые мешают build tool обрабатывать автозаполнение.
  5. исправить и исправить отсутствующие файлы, которые вы видите.

надеюсь, что это поможет


единственный раз, когда автозаполнение не работает, когда тип исходного кода для файла не установлен в Objective-C или когда вы пишете на другом языке (даже если только небольшой фрагмент, скажем, C).

Он также не работает, если есть синтаксическая ошибка на или выше строки, которую вы редактируете. Отсутствующая фигурная скобка в конце вызова метода-даже если ее нет в файле, который вы редактируете,–не позволит автозавершению получить необходимый контекст для предложения соответствующих команд. Так будет отсутствующий файл (отображается красным цветом в вашем списке файлов), даже если это не тот файл, над которым вы работаете.

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