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?
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?
Odpowiedzi:
Próbować:
Rzeczy do wypróbowania:
Uruchom to polecenie w katalogu projektu, jeśli używasz cocoapods:
rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;
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ń folder
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.
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
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 😉
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ę.
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
rm -rf ~ / Library / Developer / Xcode / DerivedData
Może się to również zdarzyć, jeśli nadmiarowo nazwałeś swoje pliki. Na przykład,
Data.swift
Data.swift
Usunięcie pliku z celów testowych rozwiązało mój problem.
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.
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:
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.
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)
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ć ...
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.
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
Xcode 11.3, macOS Catalina
proces parsecd osiąga 100% cpu, więc zabij to pomaga mi
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 :)
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:
switch mtype {
case .indeterminate:
newPosition.x = (frame.width - mainFigureText.frame.width) / 2
case .right:
newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) + (frame.width / 2)
case .left:
newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2)
}
Chciałem animować widok tekstu w lewo, w prawo lub do środka, w zależności od preferencji użytkownika. newPosition
To CGPoint
, ż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:
let halfFrameWidth: CGFloat = frame.width / 2
let middleLeft = (halfFrameWidth - mainFigureText.frame.width) / 2
switch doseType {
case .right:
newPosition.x = middleLeft + halfFrameWidth
case .left:
newPosition.x = middleLeft
default:
newPosition.x = (frame.width - mainFigureText.frame.width) / 2
}
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 nazwie Testing
. 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żyjesz Release
lub Debug
. Każda niestandardowa konfiguracja kompilacji przerywa automatyczne uzupełnianie w projekcie mieszanym (swift + objc) z testami jednostkowymi.
Ten link mi pomógł. Otwórz ustawienia kompilacji i wypełnij ścieżki wyszukiwania struktury. Zobacz poniższy obrazek.
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.
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!
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.
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.