Xcode 9 не будет автозаполнять функции по именам переменных

Мы все знаем и любим функцию автозаполнения Xcode. введите описание изображения здесь Приведенный выше снимок экрана взят из Xcode 9. Он выглядит так же, как и в Xcode 8. Он знает о моем классе, обо всех его различных объявлениях, функциях и т. д. Это не проблема SearchPaths.

В Xcode 8 мы могли начать вводить имя функции или имя любой переменной, используемой в объявлении любой функции/инициализатора, чтобы помочь автозаполнению выделить то, что нам нужно, например:   введите здесь описание изображения

Однако в Xcode 9 этого больше не происходит. Вместо этого он полностью игнорирует контекст и начинает показывать автодополнение, как будто я печатаю это с новой строки. введите здесь описание изображения Есть ли способ включить это снова? Я не знал, что мне нужна эта функция, пока не потерял ее.


person Sti    schedule 03.08.2017    source источник
comment
очистите сборку, принудительно закройте xcode и снова откройте ее. это решает вашу проблему?   -  person Mohammad Bashir Sidani    schedule 03.08.2017
comment
@MohammadBashirSidani Нет. Я также попытался удалить производные данные. Так было с Beta 1. И мой Xcode, и мой Mac перезагружались несколько раз с тех пор, как я впервые заметил это.   -  person Sti    schedule 03.08.2017
comment
Подождите, это не происходит с вами?   -  person Sti    schedule 03.08.2017
comment
У меня есть эта проблема даже в XCode 8, когда я добавляю новый класс в свой проект. Мне нужно закрыть и принудительно выйти, чтобы автозаполнение работало правильно в этом классе.   -  person Mohammad Bashir Sidani    schedule 03.08.2017
comment
но странная часть этой проблемы в том, что это происходит только со мной. Я думаю, что я единственный, кто сталкивается с htis на XCode 8   -  person Mohammad Bashir Sidani    schedule 03.08.2017
comment
у меня работает на Xcode8, но не работает на Xcode9 :(   -  person Tung Fam    schedule 03.08.2017
comment
Это так раздражает, особенно потому, что функции Swift могут быть довольно сложными, а список автозаполнения не очень хорошо отсортирован.   -  person Felix Lieb    schedule 30.03.2018


Ответы (1)


Это происходит со мной в XCode 9.3, но только (кажется) при соблюдении всех следующих условий:

  1. Экземпляр создается из файла или области, отличной от определения типа.
  2. Экземпляр не создан внутри функции
  3. Экземпляр того же типа еще не создан в текущей области. (Как обсуждалось здесь.)

Это подразумевает некоторые возможные обходные пути. Вы можете создать экземпляр внутри функции, а затем переместить строку кода в другое место. Или вы можете сначала создать фиктивный экземпляр, а затем реальный экземпляр в следующей строке — это работает, даже если вы не включаете аргументы в фиктивную строку. Например:

let dummy = MyObject  // no autocomplete available here
let obj = MyObject(anything: Any Object)  // autocomplete working on this line!
person Kal    schedule 22.05.2018