Автозаповнення Xcode 7.3 настільки розчаровує


96

У Xcode з’явилося нове автозаповнення. Можливо, це може бути корисно, оскільки перевіряє не тільки початок імен тощо. Але я виявив, що дуже часто він взагалі не знаходить імені класу, імені const тощо. Мені потрібно вводити ціле ім'я самостійно. Взагалі я виявив, що це ускладнює моє життя, а кодування займає більше часу. Чи є спосіб перейти на колишній спосіб, який працював раніше?


Користувачі, які мали справу з 7.3 як бета-версією, скаржилися на це тижнями: stackoverflow.com/questions/35586056/…
мат,

Ви можете завантажити старіший xcode вручну на developer.apple.com/downloads , наприклад xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
Джордж

43
Я не можу повірити, що вони випустили великий випуск з чимось таким важливим, як автозаповнення зламаного. Це так, ніби в Apple насправді ніхто не використовує Xcode для розробки.
soleil

3
Це настільки сильно вражає мою продуктивність, що я повертаюся до Xcode 7.2.1, щоб я міг знову повернутися до нормальної швидкості розробки. Мене, як правило, дратує Apple цим. Вони не лише змусили мене до Ель-Капітана запустити Xcode 7.3, але коли я потрапляю туди, я виявляю, що обіцяна земля далеко не актуальна. Вони взагалі тестують це? Типова неповага до "своїх" розробників, як ніколи раніше.
Квінтін Віллісон

2
Xcode 7.3.1 був випущений вчора, після моїх тестів ця помилка все ще існує ... Але Apple каже, що вони виправили це в 7.3.1.
Вінсент Сіт,

Відповіді:


18

Xcode 7.3.1

  1. У Xcode> Налаштування> Редагування тексту

    зніміть прапорець Enable type-over completions

  2. перезапустіть Xcode


14

Здається, що зняття прапорця "Увімкнути завершення надрукування типу" в XCode -> Налаштування -> Редагування тексту робить трюк. Принаймні в моєму випадку автозаповнення повернулося до свого роду старовинним способом, тому воно могло здійснити автозаповнення імені класу, яке до цього мені довелося вводити вручну.


Спробував, але він все ще не заповнює назви класів належним чином.
Ерік Б,

Я не бачу різниці. Ще потрібно закінчити власні імена ... :(
matthewfx

Щоб зробити це, вам потрібно увімкнути індексацію. Щоб увімкнути індексацію, ви не можете зробити це з Xcode. Вам потрібно виконати наступний рядок у оболонці. Потім перезапустіть Xcode. % За замовчуванням видалити com.apple.dt.Xcode IDEIndexDisable см stackoverflow.com/questions/7328041 / ...
andrewz

5

Це аж ніяк не адекватне рішення, АЛЕ це дозволило мені (ледве) зберігати розум протягом останніх кількох днів: Після кожної збірки вам потрібно смітити папку виведених даних. Ви можете знайти цю папку в Xcode > Preferences > Locations > Derived Data. Просто скиньте цілу річ, і це призведе до кроку повторної індексації, який повинен відновити належну функціональність автозаповнення. На жаль, я виявив, що коли я будую, поведінка автозавершення повертається у свій розбитий стан.


4

просто відкрийте папку даних, похідних Xcode, і видаліть папку

/Users/yourUserName/Library/Developer/Xcode/DerivedData

потім перезапустіть Xcode, тепер автозаповнення працює як шарм


Це спрацювало для мене, я не знаю, чому це негативно оцінено.
Mike M

1

У мене складається враження, що деякі "частини" автозавершення просто провалюються через деякий час. Я використовую для перезапуску Mac, щоб він знову запрацював. Але іноді це знову не вдається. Можливо, відповідь @Alex Bykov у поєднанні з перезапуском зроблять трюк.

У будь-якому випадку: автозавершення Xcode завжди було глупством. Зазвичай AppCode робив це набагато кращим. На жаль, ще не швидко.


1

Закрито Xcode, відкрито Xcode, нехай індексується, це спрацювало.


1
На жаль, це єдиний варіант.
thedp

0

він не знаходить назви класу

Як обхід можна спробувати натиснути Command + Shift + K і Command + B Кілька разів , це працює тимчасово.


1
Зробив Cmd + Shfit + K (Clean), Cmd + Shfit + Opt + K (Clean Build Folder), закрив Xcode, видалив ~/Library/Developer/Xcode/DerivedData, перезавантажив OS X, і це все одно не допомогло. :-)
TaylanUB

1
У нас є досить великий проект, який займає 20 хвилин, щоб скласти його з нуля, тому очищення та відновлення для нас не є можливістю ...
longbow

0

Xcode 7.3.1

Поділюсь ще однією можливою причиною: через пару днів ми це дізналися. У нас є декілька схем, і в одній із них заголовковий мост імпортував файл, якого вже не було. Отже, він не зламався під час компіляції та запуску (заголовок належить до іншої схеми), але призвів до поломки автозавершення (не вдалося знайти жодного класу -c).

Сподіваюся, це комусь допоможе!


0

Спробувавши різні методи:

  • Видалити похідні дані
  • Вимкнення модуля вимкнено в налаштуваннях збірки
  • Повна чистота
  • Відновіть

Тільки це спрацювало:

  • Знайдіть у своїх файлах будь-який прокоментований (/ * abc * /) код після @end і видаліть.

Кредит Max_B: https://forums.developer.apple.com/thread/7439

У моєму випадку інші проекти автоматично заповнювались автоматично. Якщо у всіх ваших проектах не вдається правильно передбачити код, можливо, це інша проблема, а інші відповіді можуть спрацювати.


-1

Я зіткнувся з цією проблемою, намагаючись створити додаток для OS X, і мені вдалося виправити цю проблему, переконавшись, що документація Xcode 7.3 та документація OS X 10.11.4 фактично завантажені. Це повністю відновило мою функціональність автозаповнення. Повні мої інструкції наведені нижче, а також у моїй відповіді на подібне запитання: https://stackoverflow.com/a/39420664/3444925

Я сам мав цю проблему, і, переглянувши всі інші подібні запитання та відповіді щодо цього, я не міг знайти рішення. Однак я нарешті знайшов те, що мені вдалося.

Перейти до Xcode -> Preferences -> Components. Там ви, мабуть, знайдете екран, який виглядає так:

введіть тут опис зображення

Це свідчить про те, що документація ще не була завантажена, і тому будь-які спроби повторного індексування або повторної збірки програми без завантаження документації не дозволять вам використовувати функцію автозавершення.

Після того, як я завантажив документацію Xcode 7.3 та документацію OSX 10.11.4, цього було достатньо для того, щоб повернути функцію автозаповнення (я намагався створити додаток для OS X, тож сміливо завантажуйте стільки документації, скільки для вас актуально ).


Посилання на зовнішні ресурси заохочуються, але, будь ласка, додайте контекст навколо посилання, щоб ваші однодумці мали певне уявлення, що це таке і чому воно існує. Завжди цитуйте найбільш релевантну частину важливого посилання, якщо цільовий сайт недоступний або постійно перебуває в автономному режимі.
pableiros

Я щойно додав тут свою повну відповідь як блок-цитату тут @pableiros
jkunzika

-1

Я не стикався з цим, поки не створив пару нових файлів класів. Інші класи працювали нормально, але автозаповнення НЕ працювало ні для чого в нових файлах ...

ВИПРАВЛЕННЯ (для мене) - мені довелося додати ці файли до ВСІХ моїх цілей, включаючи цілі модульного тесту, хоча я їх ще не використовував.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.