Dziś rano Xcode 9.0 (9A235) pokazuje nowe / dziwne okno autouzupełniania, które wcale nie jest tym, czym było. Jak uzyskać pełne pole autouzupełniania, aby autouzupełnianie wyglądało tak, jak zwykle?
xcode
autocomplete
xcode9
Ernie
źródło
źródło
Odpowiedzi:
Próbować:
źródło
Wydaje się, że usunięcie folderu DERIVED DATA rozwiązało mój problem. Dzięki temu postowi : swift println () nie pokazuje opcji autouzupełniania podczas pisania kodu
źródło
Rzeczy do wypróbowania:
1
Uruchom to polecenie w katalogu projektu, jeśli używasz cocoapods:
2
Wyczyść dane w pamięci podręcznej
Wyczyść projekt -> Cmd + Shift + K.
Wyczyść folder kompilacji -> Cmd + Shift + Option + K.
Jeśli pominąłeś krok pierwszy:
Usuń pochodne dane
Xcode Preferences
->Locations
->Symbol strzałki przenosi do
DerrivedData
-> Usuń folder3
Sprawdź źródła kompilacji w fazie budowy.
Każdy plik
.swift
i.m
w projekcie powinien znajdować się na tej liście, w przeciwnym razie nie zostanie on automatycznie uzupełniony w tych plikach.4
Zoptymalizuj swój edytor:
Użyj fileprivate dla każdej właściwości i funkcji klasy, które możesz zmniejszyć zakres pracy kompilatorów na element.
Napisz kod modularny / OOP, aby mieć mniej kodu do odczytania przez kompilator.
Unikaj stosowania wnioskowania o typie, gdy wynikiem jest złożona kalkulacja, i spróbuj rozbić złożone obliczenia na
let this = smallerOperation
instrukcjeźródło
Xcode w wersji 11.0 (11A420a)
Wypróbowałem rozwiązanie firmy Lal Krishna dla Xcode V11.0. Udało się kilka razy, ale później nie uzyskałem rezultatu.
Znalazłem jedno rozwiązanie. Musisz usunąć dwa pliki:
To rozwiązanie teraz mi pomaga. Może być przydatny dla innych 😉
źródło
Może się to zdarzyć, gdy plik nie jest członkiem elementu docelowego. Otwórz plik, w którym autouzupełnianie nie działa i pokaż kartę „Narzędzia” w prawym górnym rogu Xcode (niebieski na zrzucie ekranu poniżej).
Upewnij się, że element docelowy (zazwyczaj nazwa aplikacji) jest zaznaczony. Autouzupełnianie powinno działać niemal natychmiast, bez ponownego uruchamiania Xcode, czyszczenia lub usuwania danych pochodnych.
Jeśli jest już zaznaczona, odznacz ją i zaznacz ponownie. Dla mnie to załatwiło sprawę.
źródło
Używam Xcode 10.2 i miałem ten sam problem.
Ta odpowiedź od Axel pomógł mi naprawić.
W każdym razie opiszę trochę więcej:
YourProject.xcodeproj
, klikając prawym przyciskiem myszy i otwórzShow Package Contents
xcuserdata
i usuńyouruser.xcuserdatad
Jeśli masz również
xcworkspace
(jeśli masz już zainstalowane jakieś strąki ), wykonaj krok 3 i 4, jeśli nie, po prostu pomiń krok 3 i 4:YourProject.xcworkspace
, klikając prawym przyciskiem myszy i otwórzShow Package Contents
Przejdź do
xcuserdata
i usuńyouruser.xcuserdatad
Zamknij Xcode
źródło
Może się to również zdarzyć, jeśli nadmiarowo nazwałeś swoje pliki. Na przykład,
Data.swift
Data.swift
źródło
Usunięcie pliku z celów testowych rozwiązało mój problem.
źródło
Spróbuj to zrobić:
Wybierz plik >> sprawdź, czy plik został dodany do celów UITesting lub UnitTesting (Inspektor plików -> Członkostwo docelowe) . Jeśli tak, usuń zaznaczenie tych dwóch i upewnij się, że wybrany jest tylko cel projektu. Następnie skompiluj i spróbuj, czy autouzupełnianie działa poprawnie.
To zadziałało dla mnie. Mam nadzieję, że to komuś pomoże.
źródło
Oto trochę obejścia, ale działa.
Wyczyść projekt ... Command + Shift + K
Wyczyść folder kompilacji ... Command + Shift + Opcje (Alt) + K
Usuń dane pochodne projektu ... Można to zrobić za pomocą tego linku:
Jak mogę usunąć dane pochodne w Xcode 9?
Zamknij XCode.
Otwórz ponownie XCode (pozwól na zakończenie indeksowania) i skompiluj projekt ... Command + B
Po zakończeniu budowy sugestie wrócą. Próbowałem tego dwa razy.
Aktualizacja:
Czasami problem może być tak prosty, jak zduplikowane nazwy plików. Uważnie sprawdź, czy nowe nazwy plików dodane przez Ciebie nie powodują konfliktów ze starszymi plikami.
W Xcode 11.4, nawet jeśli przeniesiesz istniejący plik do innej grupy, sugestie znikną. Można to wyleczyć, po prostu ponownie uruchamiając Xcode.
źródło
Po długim czasie poszukiwań w końcu rozwiązałem problem. W Xcode> Preferencje> Edycja tekstu, w polu „Ukończenie kodu”, z jakiegoś powodu zaznaczono opcję „Użyj klawisza Escape, aby wyświetlić sugestie uzupełniania”. Gdy tylko odznaczyłem to pole, automatyczne uzupełnianie działało jak urok, nawet bez konieczności ponownego uruchamiania Xcode! (Xcode 10)
źródło
Dodałem tutaj, co się dzieje w moim projekcie na wypadek, gdyby mogło to pomóc komuś innemu ... Miałem 2 pliki o tej samej nazwie i nie zdawałem sobie sprawy.
źródło
Właśnie straciłem dzień, próbując rozwiązać koszmar autouzupełniania Xcode (9.2). Usuwanie danych pochodnych wydawało się działać na krótko, po czym sytuacja się odwróciła. Ponowne uruchamianie itp. I inne sugerowane voodoo nie przyniosły różnicy.
Zrezygnowałem i pobrałem 30-dniową wersję próbną AppCode z Jet Brains. Autouzupełnianie działało tam dobrze i może to zbieg okoliczności, ale potem zaczęło działać ponownie w moim projekcie w Xcode. Nie mogę zagwarantować, że będzie nadal działać ...
źródło
W moim przypadku wydaje się to być specyficzne dla pliku (Xcode 9.2) Dla mnie poprawka była:
Wreszcie po 3 godzinach próbowania wszystkiego - autouzupełnianie działa tak, jak powinno.
źródło
Problemy głównie z powodu braku lokalizacji niektórych plików w nawigatorze projektów (błędy kompilacji)
Project Navigator
okienkoMożesz też:
Mam nadzieję że to pomoże
źródło
Xcode 11.3, macOS Catalina
proces parsecd osiąga 100% cpu, więc zabij to pomaga mi
źródło
Dla Xcode 11.4 (11E146)
Back Slash w nazwie folderu przerywa działanie funkcji autouzupełniania. Jeśli tak jest, usuń go i zbuduj ponownie.
źródło
U mnie działo się to w moim pliku testowym, ponieważ z jakiegoś powodu nie był częścią celu. Ustawienie docelowego członkostwa rozwiązało problem.
źródło
U mnie problem wystąpił, gdy odrzuciłem wszystkie zmiany jednego pliku (w sekcji Kontrola źródła> Zatwierdź), co skutecznie usunęło plik. Właśnie tego chciałem i pomyślałem, że plik i wszystkie odniesienia do niego również zostaną usunięte.
Jednak nadal istniało odniesienie do pliku (zaznaczone na czerwono) w nawigatorze projektu. Usunięcie (teraz nieistniejącego) pliku w nawigatorze projektu w magiczny sposób przywróciło automatyczne uzupełnianie.
Nie pomogło żadne czyszczenie, usuwanie danych pochodnych itp. Zdałem sobie sprawę, że usunięty plik nadal się wyświetlał, kiedy próbowałem zbudować projekt, co oczywiście się nie udało, ponieważ nie mógł znaleźć tego pliku.
Mam nadzieję, że to pomoże komuś zaoszczędzić 30 minut :)
źródło
Użyj
Command + B
lub,
Command + R
aby zbudować lub uruchomić projektXcode czasami się psuje;)
źródło
Suggest completions while typing
w Xcode -> Preferencje -> Edycja tekstuźródło
Moja sprawa może wydawać się zbyt szczegółowa, aby pomóc, ale może dać komuś pomysł, jak rozwiązać zepsuty autouzupełnianie. Xcode 10.2.1.
W moim przypadku autouzupełnianie całkowicie przestało działać i żadna z tych odpowiedzi nie pomogła. Ponadto słychać było, jak wentylator w komputerze zaczął głośniej pracować, co wskazuje na przepracowanie (żadne inne aplikacje nie działają), należy zauważyć, że edytuję na laptopie MacBook Pro. Wydawało się, że jest to powiązane z redaktorem, który stara się przeanalizować równanie, które napisałem:
Chciałem animować widok tekstu w lewo, w prawo lub do środka, w zależności od preferencji użytkownika.
newPosition
ToCGPoint
, że tekst będzie animować do. W każdym razie podzieliłem równania i nagle automatyczne uzupełnianie zaczęło działać, a wentylator ucichł! Udało mi się odtworzyć ten konkretny problem więcej niż raz, ponownie wpisując powyższy kod, a następnie zastępując go:źródło
Chciałbym dodać jeszcze jedno do stosu rozwiązań, ponieważ jako jedyne działało dla mnie i nigdzie go tu nie ma.
Xcode zwykle zawiera dwie domyślne konfiguracje kompilacji dla każdego projektu.
Release
&Debug
. Mam dodatkowy do moich testów jednostkowych o nazwieTesting
. W Xcode 10.1, 10.2, 10.3 i 11 beta nowy system kompilacji nie wydaje się go lubić i będzie automatycznie uzupełniany tylko wtedy, gdy użyjeszRelease
lubDebug
. Każda niestandardowa konfiguracja kompilacji przerywa automatyczne uzupełnianie w projekcie mieszanym (swift + objc) z testami jednostkowymi.źródło
Ten link mi pomógł. Otwórz ustawienia kompilacji i wypełnij ścieżki wyszukiwania struktury. Zobacz poniższy obrazek.
źródło
Błędy kompilacji mogą spowodować uszkodzenie funkcji autouzupełniania w Xcode.
źródło
Miałem problem ze 100% nie działającym autouzupełnianiem, żaden z napisanych tutaj nie pomógł. Zauważyłem jedną rzecz - został zerwany zaraz po dodaniu niektórych encji do pliku .xcdatamodel, które domyślnie mają definicję klasy codegen.
Nie byłem więc zaskoczony, gdy użycie starego stylu codegen none (i generowanie klas oczywiście) natychmiast rozwiązało problem, nawet bez ponownego uruchamiania xcode.
źródło
W Xcode 11.1 samo wykonanie
Clean Build Folder
lub usunięcie danych pochodnych nie wystarczyło do naprawienia autouzupełniania.Dopiero po ponownym uruchomieniu komputera Mac wszystko wróciło do normy
źródło
Jeśli masz problem z dziwnym uzupełnianiem / automatycznym uzupełnianiem / inteligencją (brak wyświetlania domyślnych rzeczy, takich jak delegaci i metody protokołów źródła danych), po prostu zmień swój cel (np. Z symulatora iPhone'a 8 na prawdziwe urządzenie), skompiluj projekt i wróć do pierwotnego celu .
Podobnie jest z problemami z Interface Builder (scenorysami), które nie wyświetlają niczego, a jedynie „nic nie zaznaczono” po wybraniu dowolnej części widoku. Po prostu przełącz się na inny Xib / Storyboard (lub nawet utwórz nowy), sprawdź, czy tam działa i przełącz się z powrotem.
Te obejścia zadziałały dla mnie w obu przypadkach (oba problemy wystąpiły w jednym dniu w jednym projekcie na Xcode 10.2.1). Z tego, co widziałem na forach internetowych, wydaje się, że są to błędy, które nie zostały naprawione od czasu Xcode 6.x.
Twoje zdrowie!
źródło
W moim przypadku (Xcode 11.1) stało się to, gdy zatrzymałem automatyczne indeksowanie Xcode za pomocą tego polecenia
defaults write com.apple.dt.Xcode IDEIndexDisable -bool true
.Więc cofam to z
defaults write com.apple.dt.Xcode IDEIndexDisable -bool false
. następnie uruchom ponownie macOS i ponownie uruchom Xcode.źródło
Miałem ten sam problem z Xcode 11.3. Nic powyżej nie pomogło, okazało się, że mam błędy kompilacji. Po prostu napraw błędy kompilacji, a autouzupełnianie znowu zadziała.
źródło