Autouzupełnianie Xcode 7.3 jest frustrujące


96

W Xcode jest nowe autouzupełnianie. Prawdopodobnie może się przydać, ponieważ sprawdza nie tylko początek nazw itp. Ale okazało się, że bardzo często nie znajduje nazwy klasy lub nazwy const itp. Muszę sam wpisać całą nazwę. Ogólnie rzecz biorąc, okazało się, że utrudnia to moje życie, a kodowanie jest bardziej czasochłonne. Czy jest sposób, aby przejść na stary sposób, w jaki działał?


Użytkownicy, którzy zajmowali się wersją 7.3 jako beta, narzekali na to od tygodni: stackoverflow.com/questions/35586056/ ...
mat.

starsze xcode można pobrać ręcznie ze strony developer.apple.com/downloads , np. xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/ ...
George

43
Nie mogę uwierzyć, że wydali główne wydawnictwo z czymś tak ważnym, jak zepsuty autouzupełnianie. To tak, jakby nikt w Apple nie używał Xcode do programowania.
soleil

3
To tak bardzo wpływa na moją produktywność, że wracam do Xcode 7.2.1, więc mogę ponownie wrócić do normalnej szybkości programowania. Jestem bardziej niż zwykle zirytowany tym Apple. Nie tylko zmusili mnie do wyjazdu do El Capitan, aby uruchomić Xcode 7.3, ale kiedy tam dotarłem, okazało się, że obiecana ziemia jest daleka od rzeczywistości. Czy w ogóle to testują? Typowy brak szacunku dla „swoich” programistów, jak zawsze.
Quintin Willison,

2
Xcode 7.3.1 został wydany wczoraj, po moich testach ten błąd nadal istnieje ... Ale Apple twierdzi, że naprawił go w wersji 7.3.1.
Vincent Sit

Odpowiedzi:


18

Xcode 7.3.1

  1. W Xcode> Preferencje> Edycja tekstu

    odznacz Enable type-over completions

  2. uruchom ponownie Xcode


14

Wygląda na to, że wyczyszczenie pola wyboru „Włącz uzupełnianie wpisywania” w XCode -> Preferencje -> Edycja tekstu załatwia sprawę. Przynajmniej w moim przypadku autouzupełnianie powróciło do swego starego sposobu, więc mogło automatycznie uzupełnić nazwę klasy, którą wcześniej musiałem wpisać ręcznie.


Próbowałem, ale nadal nie uzupełnia poprawnie nazw klas.
Erik B,

Nie widzę różnicy. Nadal muszę dokończyć nazwy niestandardowe ... :(
matthewfx

Aby to zadziałało, musisz włączyć indeksowanie. Aby włączyć indeksowanie, nie możesz tego zrobić z poziomu Xcode. Musisz wykonać następujący wiersz w powłoce. Następnie uruchom ponownie Xcode. % defaults delete com.apple.dt.Xcode IDEIndexDisable zobacz stackoverflow.com/questions/7328041/ ...
andrewz

5

W żadnym wypadku nie jest to odpowiednie rozwiązanie, ALE pozwoliło mi (ledwo) zachować zdrowie psychiczne w ciągu ostatnich kilku dni: po każdej kompilacji musisz wyrzucić folder z danymi pochodnymi. Możesz znaleźć ten folder w Xcode > Preferences > Locations > Derived Data. Po prostu wyrzuć całość, a rozpocznie się ponowna indeksacja, która powinna przywrócić właściwą funkcjonalność autouzupełniania. Niestety odkryłem, że po zbudowaniu zachowanie autouzupełniania powraca do stanu zepsutego.


4

wystarczy otworzyć folder danych pochodnych Xcode i usunąć folder

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

następnie uruchom ponownie Xcode, teraz autouzupełnianie działa jak urok


U mnie to zadziałało, nie wiem, dlaczego jest oceniane negatywnie.
Mike M

1

Mam wrażenie, że niektóre „części” autouzupełniania po chwili po prostu zawodzą. Używam do ponownego uruchomienia komputera Mac, aby przywrócić jego działanie. Ale czasami znowu zawodzi. Może odpowiedź @Alex Bykov w połączeniu z restartem załatwi sprawę.

W każdym razie: automatyczne uzupełnianie Xcode zawsze było bzdurą. AppCode był znacznie lepszy. Niestety jeszcze nie szybko.



0

nie znajduje nazwy klasy

Aby obejść ten problem , możesz spróbować nacisnąć Command + Shift + K i Command + B Kilka razy , działa to tymczasowo.


1
Czy Cmd + Shfit + K (Clean), Cmd + Shfit + Opt + K (Clean Build Folder), zamknął Xcode, usunął ~/Library/Developer/Xcode/DerivedData, zrestartował OS X i nadal nie pomogło. :-)
TaylanUB

1
Mamy dość duży projekt, którego kompilacja od zera zajmuje 20 minut, więc czyszczenie i przebudowa nie są dla nas opcją ...
longbow

0

Xcode 7.3.1

Podzielę się innym możliwym powodem, o którym dowiedzieliśmy się po kilku dniach. Mamy wiele schematów, aw jednym z nich nagłówek mostkujący importował plik, który już nie istniał. Tak więc nie zepsuł się podczas kompilacji i uruchamiania (nagłówek należy do innego schematu), ale spowodował zerwanie autouzupełniania (nie można znaleźć żadnej klasy celu-c).

Mam nadzieję, że to komuś pomoże!


0

Po wypróbowaniu różnych metod:

  • Usuń dane pochodne
  • Włączanie modułu w ustawieniach kompilacji
  • Pełne czyszczenie
  • Wznowienie

Tylko to zadziałało:

  • Znajdź dowolny zakomentowany kod (/ * abc * /) po @end w swoich plikach i usuń.

Kredyt dla Max_B: https://forums.developer.apple.com/thread/7439

W moim przypadku inne projekty kończyły się automatycznie. Jeśli wszystkie Twoje projekty nie przewidują poprawnie kodu, może to oznaczać inny problem, a inne odpowiedzi mogą działać.


-1

Napotkałem ten problem podczas próby utworzenia aplikacji dla systemu OS X i udało mi się go naprawić, upewniając się, że dokumentacja Xcode 7.3 i dokumentacja systemu OS X 10.11.4 zostały faktycznie pobrane. Wykonanie tego w pełni przywróciło moją funkcję autouzupełniania. Moje pełne instrukcje znajdują się poniżej, a także w mojej odpowiedzi na podobne pytanie: https://stackoverflow.com/a/39420664/3444925

Sam miałem ten problem i po przejrzeniu wszystkich innych podobnych pytań i odpowiedzi na ten temat nie mogłem znaleźć rozwiązania. Jednak w końcu znalazłem to, co działa dla mnie.

Idź do Xcode -> Preferences -> Components. Tam prawdopodobnie znajdziesz ekran, który wygląda następująco:

wprowadź opis obrazu tutaj

Oznacza to, że dokumentacja nie została pobrana, a zatem wszelkie próby ponownego indeksowania lub odbudowania aplikacji bez pobrania dokumentacji uniemożliwiłyby korzystanie z funkcji autouzupełniania.

Po pobraniu dokumentacji Xcode 7.3 i dokumentacji OSX 10.11.4 wystarczyło, żebym odzyskał funkcję autouzupełniania (próbowałem zbudować aplikację na OS X, więc możesz pobrać tyle dokumentacji, ile jest dla Ciebie istotne ).


Zachęcamy do umieszczania linków do zewnętrznych zasobów, ale proszę dodać kontekst wokół łącza, aby inni użytkownicy mieli pojęcie, co to jest i dlaczego się tam znajduje. Zawsze cytuj najbardziej odpowiednią część ważnego linku, na wypadek gdyby strona docelowa była nieosiągalna lub została trwale wyłączona.
pableiros

Właśnie dodałem moją pełną odpowiedź tutaj jako cytat blokowy tutaj @pableiros
jkunzika

-1

Nie napotkałem tego, dopóki nie utworzyłem kilku nowych plików klas. Inne klasy działały dobrze, ale autouzupełnianie NIE działało dla niczego w nowych plikach ...

NAPRAW (dla mnie) - musiałem dodać te pliki do WSZYSTKICH moich celów, w tym celów testów jednostkowych, mimo że jeszcze ich nie używałem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.