2016-12-19 3 views
51

По какой-то причине в Xcode 8.2 мое завершение кода перестало работать. Я очистил свой продукт, перезапустил Xcode, перезапустил свой компьютер и удалил полученные данные, и до сих пор не повезло. Я отправил это в службу поддержки Apple. Кто-нибудь сталкивался с этим раньше и смог его исправить?Xcode 8.2 Завершение кода Не работает

+2

Попробуйте переключить цель развертывания. – shallowThought

+2

Убедитесь, что построитель интерфейса не открыт. Я нашел постоянную перестройку, вызванную тем, что оставил IB, в то время как писать код замедляет/ломает много вещей, включая завершение кода. – AnthonyW

+1

@ AnthonyW Вы можете отключить это. Отключите «Автоматически обновлять представления» в меню «Редактор». Затем вы можете вручную обновлять представления всякий раз, когда вы хотите обновить IB_Designables. – siburb

ответ

14

Завершение кода также прекратило работать для меня в 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.

+0

Вы заполнили отчет об ошибке с Apple? – nbloqs

+2

Да, собирался добавить: https://openradar.appspot.com/radar?id=4929038300741632 – charles

+1

nope! для меня это не работает даже в любом стремительном классе. Я использую XCode 8.2.1 и Xcode 8.3. – crypt

1

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

Даже те методы не работают, если я оставляю Xcode открытыми и помещают компьютер в сон в течение нескольких часов и возвращаются. Когда это случается, мне нужно выйти из Xcode, иногда Force Quit it, а затем после того, как вы вернетесь, выполните описанные выше шаги. Но мне приходилось обходиться с ним после каждой компиляции или компиляции и запуска. Еще не пробовал 8.3 beta.

+0

Проблема с силовым выходом - это, по-моему, реальная, но не связанная с этим проблема. – matt

146

Update: Согласно @Dareon решения ниже, также работает для Xcode версии 8.3 (8E162) и 8.3.2 (8E2002). Спасибо, @Dareon за подтверждение. :)

Я столкнулся с той же проблемой, и после этого работал на меня.

Я использую Xcode Version 8.2.1 (8C1002).

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

По крайней мере, это сработало для меня.

+2

Интересно ... Это работает. Сначала я пробовал без перезапуска Xcode, который не работал вообще. Без функции завершения кода я полностью потерял .. – akw

+2

Работает на Xcode 8.1 – alpere

+5

работает на 8.3.2 спасибо –

4

Просто перезагрузка XCode работала для меня.

0

У меня была такая же проблема, когда «индексация» не работала. Поскольку я использовал pod и статические библиотеки. Я только что перестроил статические библиотеки отдельно.

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

1

Просто очистите и создайте свое приложение один раз на Generic iOS Device, возможно, это связано с проблемой времени компиляции, которая отключает интеллект. Я вижу эту ошибку с Xcode 8.2.1.

+1

Ни один из других предложений не работал для меня, кроме этого. Спасибо! – Brainware

0

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

0

для других. что работает для меня:

не Удалять Походные данных Xcode Настройки -> Местоположение -> Arrow Symbol Переходит к DerrivedData -> Удалить папку

 Смежные вопросы

  • Нет связанных вопросов^_^