По какой-то причине в Xcode 8.2 мое завершение кода перестало работать. Я очистил свой продукт, перезапустил Xcode, перезапустил свой компьютер и удалил полученные данные, и до сих пор не повезло. Я отправил это в службу поддержки Apple. Кто-нибудь сталкивался с этим раньше и смог его исправить?Xcode 8.2 Завершение кода Не работает
ответ
Завершение кода также прекратило работать для меня в Xcode 8.2.1, и никакая сумма очистки, выведенных данных или перезагрузки не была исправлена. Через некоторое время я понял, что завершение кода было нарушено только в области расширения, над которой я работал. Если вы набрали вручную, код будет правильно подсвечен и будет компилироваться в порядке, поэтому проблема не в том, что исходный код отбрасывает все, что парсер отвечает за завершение кода.
Вот конкретный контекст, в котором это происходит, в этом очень простом примере:
struct SomeStruct {
static let foobar1 = {
return NSBezierPath()
}()
}
extension SomeStruct {
static let foobar2 = {
return NSBezierPath()
}()
}
автозавершения кода работает отлично в блоке реализации foobar1
, но не для foobar2
. Это наличие static let
в расширении, которое, похоже, вызывает его. Проблема возникает как для структуры, так и для класса.
Похож на ошибку с Xcode, поэтому единственным обходным решением для меня было переместить foobar2
в основное определение SomeStruct
.
У меня были серьезные проблемы с этим. Для меня завершение кода и форматирование теряются в текущем рабочем исходном файле, когда я когда-либо делаю компиляцию. Если я вернусь и перейду на другую вкладку и вернусь, через секунду или две она снова начнет работать. Иногда даже это не работает, и я должен оставаться на одной вкладке и открывать другой файл, а затем перемещаться назад.
Даже те методы не работают, если я оставляю Xcode открытыми и помещают компьютер в сон в течение нескольких часов и возвращаются. Когда это случается, мне нужно выйти из Xcode, иногда Force Quit it, а затем после того, как вы вернетесь, выполните описанные выше шаги. Но мне приходилось обходиться с ним после каждой компиляции или компиляции и запуска. Еще не пробовал 8.3 beta.
Проблема с силовым выходом - это, по-моему, реальная, но не связанная с этим проблема. – matt
Update: Согласно @Dareon решения ниже, также работает для Xcode версии 8.3 (8E162) и 8.3.2 (8E2002). Спасибо, @Dareon за подтверждение. :)
Я столкнулся с той же проблемой, и после этого работал на меня.
Я использую Xcode Version 8.2.1 (8C1002).
- Перейти к Xcode> Preferences> Редактирование текста
- При завершении коды - Uncheck 'Предлагать завершения при вводе'
- Выхода из Xcode, а затем перезапустить Xcode.
- Перейти к Xcode> Preferences> Редактирование текста снова
- Выход из Xcode, а затем перезапустить Xcode.
- Теперь перейдите к заполнению кода и проверьте «Предложите полные изменения при наборе текста».
- Попробуйте ввести библиотечную функцию или enum и наслаждайтесь!
По крайней мере, это сработало для меня.
Просто перезагрузка XCode работала для меня.
У меня была такая же проблема, когда «индексация» не работала. Поскольку я использовал pod и статические библиотеки. Я только что перестроил статические библиотеки отдельно.
Надеюсь, что это поможет.
Просто очистите и создайте свое приложение один раз на Generic iOS Device
, возможно, это связано с проблемой времени компиляции, которая отключает интеллект. Я вижу эту ошибку с Xcode 8.2.1.
Ни один из других предложений не работал для меня, кроме этого. Спасибо! – Brainware
Если у вас есть большие статические литералы, попробуйте прокомментировать их. Иногда они могут отключить компилятор.
для других. что работает для меня:
не Удалять Походные данных Xcode Настройки -> Местоположение -> Arrow Symbol Переходит к DerrivedData -> Удалить папку
Попробуйте переключить цель развертывания. – shallowThought
Убедитесь, что построитель интерфейса не открыт. Я нашел постоянную перестройку, вызванную тем, что оставил IB, в то время как писать код замедляет/ломает много вещей, включая завершение кода. – AnthonyW
@ AnthonyW Вы можете отключить это. Отключите «Автоматически обновлять представления» в меню «Редактор». Затем вы можете вручную обновлять представления всякий раз, когда вы хотите обновить IB_Designables. – siburb