Xcode 9 Autocomplete funktioniert nicht zu 100% - funktioniert teilweise

120

Heute Morgen zeigt Xcode 9.0 (9A235) eine neue / seltsame Auto-Complete-Box, die überhaupt nicht mehr so ​​ist wie früher. Wie erhalte ich die Box für die vollständige automatische Vervollständigung, damit die automatische Vervollständigung wie gewohnt aussieht?

Geben Sie hier die Bildbeschreibung ein

Ernie
quelle
1
Das Löschen des Ordners DERIVED DATA hat es für mich gelöst. Danke an einen anderen Beitrag. Dank diesem Beitrag: stackoverflow.com/questions/28429630/…
Ernie
Wahrscheinlich liegt es daran, dass die Indizierung noch nicht abgeschlossen ist.
Ozgur
1
Versuchte jede vorgeschlagene Lösung und nichts half bei einem meiner Projekte Alexander
Alexander Vasenin
3
11.3 ist eine Katastrophe in Bezug auf dieses Problem. Oft hilft schon ein Neustart von Xcode: /
Fattie

Antworten:

231

Versuchen:

  1. Gehen Sie zu Xcode> Einstellungen> Textbearbeitung
  2. Klicken Sie unter Code-Vervollständigung auf "Vervollständigungen während der Eingabe vorschlagen".
  3. Beenden Sie Xcode und starten Sie Xcode neu.
  4. Zum Xcode> Einstellungen> Textbearbeitung wieder
  5. Beenden Sie Xcode und starten Sie Xcode neu.
  6. Gehen Sie jetzt zu Code - Vervollständigung und Überprüfung ‚vorschlagen Vervollständigungen während der Eingabe‘.
  7. Versuchen Sie, Bibliotheksfunktion oder Aufzählung einzugeben, und genießen Sie es!
Lal Krishna
quelle
2
tolle Lösung. so seltsam. Ich frage mich, wie Sie das repliziert haben.
Kunal Gupta
1
Millionen-Dollar-Antwort. Dies hat sogar "Zur Definition springen"
behoben
1
Woow, es funktioniert, jetzt begann ich an Ghost zu glauben: D
Santosh Singh
2
Dies ist eine zwei Jahre alte Antwort, die immer noch funktioniert. Genial. Danke Mann
Prabhdeep Singh
1
In XCode 11.5, Catalina, Juli 2020 noch erforderlich. Vielen Dank!
Reuben Scratton
30

Dinge zu versuchen:

1

Führen Sie diesen Befehl im Projektverzeichnis aus, wenn Sie Cocoapods verwenden:

rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;


2

Zwischengespeicherte Daten bereinigen

Bereinigen Sie das Projekt -> Befehl + Umschalt + K.

Bereinigen Sie den Build-Ordner -> Befehl + Umschalt + Option + K.

Wenn Sie Schritt 1 übersprungen haben:
Abgeleitete Daten löschen
Xcode Preferences-> Locations->
Pfeilsymbol Wechselt zu DerrivedData-> Ordner löschen


3

Überprüfen Sie die Kompilierungsquellen Ihrer Build-Phase.

Jeder .swiftund .mDatei in dem Projekt sollte in dieser Liste sein oder es wird nicht in diesen Dateien automatisch vervollständigt.


4

Optimieren Sie Ihren Editor:

Verwenden Sie fileprivate für jede Klasseneigenschaft und -funktion, die Sie verwenden können, um den Umfang der Compiler-Arbeit pro Element zu verringern.

Schreiben Sie modularen / OOP-Code, damit der Compiler weniger Code lesen kann.

Vermeiden Sie die Verwendung von Typinferenz, wenn das Ergebnis eine komplexe Berechnung ist, und versuchen Sie, komplexe Berechnungen in let this = smallerOperationAnweisungen zu zerlegen

Sethmr
quelle
Mit XCode 9.2 gibt es kein Pfeilsymbol mehr im abgeleiteten Datenordner. Vielen Dank für den fileprivate Tipp. Der Albtraum geht weiter ...
Sal
Ich sehe immer noch das Pfeilsymbol. War das in einer früheren Version von 9.2 oder so?
Sethmr
28

Xcode Version 11.0 (11A420a)

Ich habe die Lösung von Lal Krishna für Xcode V11.0 ausprobiert. Es hat ein paar Mal funktioniert, aber später habe ich kein Ergebnis bekommen.

Ich habe eine Lösung gefunden. Sie müssen zwei Dateien löschen:

  1. Bibliothek / Entwickler / Xcode / Abgeleitete Daten (wie zuvor beschrieben)
  2. Bibliothek / Entwickler / Xcode / UserData / IDEEditorInteractivityHistory

Diese Lösung hilft mir jetzt. Kann für andere nützlich sein 😉

Kostiantyn Bykhkalo
quelle
3
arbeitete für mich. Ich möchte nur sagen, dass Visual Studio 2002 (!) Besser war als Xcode 2009-2019. In all den Jahren ist Xcode so fehlerhaft. Ich verstehe nicht, warum Apple sich nicht um die Entwickler kümmert. Xcode von Entwicklern gemacht! (Ich musste es raus)
user1105951
Das funktioniert bei mir: Beenden Sie Xcode, entfernen Sie 2 Ordner wie gesagt, starten Sie Xcode neu und alle Probleme sind verschwunden: D
phuongzzz
20

Dies kann passieren, wenn die Datei kein Mitglied des Ziels ist. Öffnen Sie die Datei, in der die automatische Vervollständigung nicht funktioniert, und zeigen Sie die Registerkarte "Dienstprogramme" oben rechts in Xcode an (blau im Screenshot unten). Screenshot der Xcode-Schaltflächen oben rechts

Screenshot der Optionen für die Xcode-Zielmitgliedschaft

Stellen Sie sicher, dass Ihr Ziel (normalerweise der Name Ihrer App) aktiviert ist. Die automatische Vervollständigung sollte fast sofort funktionieren, ohne Xcode neu zu starten, abgeleitete Daten zu bereinigen oder zu löschen.

Wenn es bereits aktiviert ist, deaktivieren Sie es erneut. Für mich hat es den Trick getan.

Jesaja Turner
quelle
Nur das Öffnen und Schließen dieser Seite hat funktioniert. Ich bin verwirrt. Danke übrigens.
Okhan Okbay
Es funktionierte mit xcode 10. Die Datei war tatsächlich bereits Mitglied des Ziels. Ich musste es deaktivieren und dann erneut überprüfen, um als solches erkannt zu werden.
Jim75
Dies ist mir nach dem Zusammenführen von Git passiert. Ich denke, ein Zweig hat über meine aktuelle Projektdatei geschrieben und der andere hat sich nicht richtig darin zusammengeführt.
Asfand Shabbir
11

Ich verwende Xcode 10.2 und hatte das gleiche Problem.

Diese Antwort von Axel hat mir geholfen, das Problem zu beheben.

Wie auch immer, ich werde ein bisschen mehr beschreiben:

  1. Gehen Sie zu, YourProject.xcodeprojindem Sie mit der rechten Maustaste klicken und öffnenShow Package Contents
  2. Gehen Sie zu xcuserdataund löschen Sie Ihreyouruser.xcuserdatad

Wenn Sie auch die haben xcworkspace(wenn Sie bereits Pods installiert haben), führen Sie die Schritte 3 und 4 aus. Wenn nicht, überspringen Sie einfach die Schritte 3 und 4:

  1. Gehen Sie zu, YourProject.xcworkspaceindem Sie mit der rechten Maustaste klicken und öffnenShow Package Contents
  2. Gehen Sie zu xcuserdataund löschen Sie Ihreyouruser.xcuserdatad

  3. Beenden Sie Xcode

  4. Löschen Sie abgeleitete Daten mithilfe des Terminals:

rm -rf ~ / Library / Developer / Xcode / DerivedData

  1. Öffnen Sie Xcode und prüfen Sie, ob es funktioniert.

Geben Sie hier die Bildbeschreibung ein

Gent Berani
quelle
11

Dies kann auch passieren, wenn Sie Ihre Dateien redundant benannt haben. Beispielsweise,

Data.swift

Data.swift

ScottyBlades
quelle
1
In meinem Fall war dies das Problem, ich habe den gleichen Dateinamen in 2 verschiedenen Ordnern
Raj
Das passiert mir auch. Zwei ViewController-Dateien
Shark Deng
1
In meinem Fall hatte ich eine virtuelle Gruppe namens ABC und eine Datei innerhalb dieser Gruppe namens ABC.swift. Das Umbenennen der Datei hat dies behoben. Danke
Rem-D
7

Das Entfernen der Datei von den Testzielen hat mein Problem behoben.

Martin Jun
quelle
Hat für mich gearbeitet. Danke
Duan Nguyen
konnte es nicht finden
Ryan110
5

Bitte versuchen Sie dies:

Wählen Sie die Datei aus >> prüfen Sie, ob die Datei zu UITesting- oder UnitTesting-Zielen hinzugefügt wurde (Dateiinspektor -> Zielmitgliedschaft ) . Wenn ja, deaktivieren Sie diese beiden und stellen Sie sicher, dass nur das Projektziel ausgewählt ist. Erstellen Sie dann und versuchen Sie, ob die automatische Vervollständigung ordnungsgemäß funktioniert.

Das hat bei mir funktioniert. Hoffe es hilft jemandem.

abhimuralidharan
quelle
4

Nach langer Suche habe ich das Problem endlich für mich behoben. Unter Xcode> Einstellungen> Textbearbeitung wurde unter "Code-Vervollständigung" aus irgendeinem Grund "Escape-Taste zum Anzeigen von Vervollständigungsvorschlägen verwenden" aktiviert. Sobald ich dieses Kontrollkästchen deaktiviert hatte, funktionierte die automatische Vervollständigung wie ein Zauber, ohne dass Xcode neu gestartet werden musste! (Xcode 10)

Xcoder
quelle
4

Hier ist ein bisschen Workaround, aber es funktioniert.

  1. Bereinigen Sie das Projekt ... Befehl + Umschalt + K.

  2. Bereinigen Sie den Build-Ordner ... Befehl + Umschalt + Optionen (Alt) + K.

  3. Abgeleitete Daten für das Projekt löschen ... Dies kann mit Hilfe dieses Links erfolgen:

    Wie kann ich abgeleitete Daten in Xcode 9 löschen?

  4. Schließen Sie XCode.

  5. Öffnen Sie XCode erneut (lassen Sie die Indizierung abschließen) und erstellen Sie das Projekt ... Befehl + B.

Sobald der Bau abgeschlossen ist, werden die Vorschläge zurück sein. Ich habe es zweimal versucht.

Aktualisieren:

Manchmal kann das Problem so einfach sein wie doppelte Dateinamen. Überprüfen Sie sorgfältig, ob neue Dateinamen, die Sie hinzugefügt haben, mit älteren Dateien in Konflikt stehen.

Abhinav Dobhal
quelle
3

Ich habe hier hinzugefügt, was in meinem Projekt vor sich geht, nur für den Fall, dass es jemand anderem helfen kann ... Ich hatte 2 Dateien mit demselben Namen und wusste es nicht.

TomCobo
quelle
2

Ich habe gerade einen Tag verloren, als ich versucht habe, den Alptraum der automatischen Vervollständigung von Xcode (9.2) zu lösen. Das Löschen abgeleiteter Daten schien kurz zu funktionieren, dann kehrten die Dinge zurück. Neustarts usw. und andere vorgeschlagene Voodoos konnten keinen Unterschied machen.

Ich habe die 30-Tage-Testversion von AppCode von Jet Brains aufgegeben und heruntergeladen. Autocomplete hat dort gut funktioniert und das ist vielleicht ein Zufall, aber dann hat es in meinem Projekt in Xcode wieder funktioniert. Ich kann nicht garantieren, dass es weiter funktioniert ...

SimonTheDiver
quelle
"anderes vorgeschlagenes Voodoo" lol - so gut ausgedrückt ... wir verlieren so viel Zeit damit, Lösungen für Apples Fehler zu finden, aber ich habe aufgehört, mich über xcode zu beschweren, als ich anfing, Android Studio zu verwenden
JohnV
2

In meinem Fall scheint es dateispezifisch zu sein (Xcode 9.2). Für mich war das Update:

  1. Problemdatei löschen (Referenz entfernen)
  2. Reinigen und bauen
  3. Datei wieder in das Projekt einfügen (Testziele wurden nicht überprüft)
  4. Bauen Sie erneut

Endlich, nachdem Sie 3 Stunden lang alles ausprobiert haben - die automatische Vervollständigung funktioniert wie es sollte.

Matjan
quelle
2

Probleme hauptsächlich, weil im Projektnavigator der Speicherort einiger Dateien fehlt (Erstellungsfehler)

  1. Drücken Sie Befehl + 1 zu öffnen Project NavigatorScheibe
  2. Überprüfen Sie, ob Dateien fehlen

Oder du kannst:

  1. DerivedData löschen (Befehl + Umschalt + K)
  2. Bereinigungsordner bereinigen (Befehl + Umschalt + Option + K)
  3. Drücken Sie erneut auf Build (Befehl + B).
  4. Es sollte ein Build-Fehler angezeigt werden, bei dem Xcode einige Dateien nicht finden konnte, die verhindern, dass das Build-Tool die automatische Vervollständigung verarbeitet.
  5. Korrigieren und korrigieren Sie alle fehlenden Dateien, die Sie sehen.

Hoffe das hilft

Vinh Nguyen
quelle
2

Xcode 11.3, macOS Catalina

Prozess parsecd erreichen 100% der CPU, also töte es hilft mir

Олень Безрогий
quelle
2

Für Xcode 11.4 (11E146)

Zurück Schrägstrich im Ordnernamen, der die Autovervollständigungsfunktion unterbricht. Wenn dies der Fall ist, entfernen Sie ihn und erstellen Sie ihn erneut.

Geben Sie hier die Bildbeschreibung ein

Husam
quelle
1

Für mich passierte es in meiner Testdatei, weil es aus irgendeinem Grund nicht Teil eines Ziels war. Durch Festlegen der Zielmitgliedschaft wurde das Problem behoben.

Menno
quelle
1

Bei mir trat das Problem auf, als ich alle Änderungen einer Datei verwarf (unter Quellcodeverwaltung> Festschreiben), wodurch die Datei effektiv gelöscht wurde. Dies ist, was ich wollte und ich dachte, dass die Datei und alle Verweise darauf auch gelöscht werden würden.

Es gab jedoch immer noch einen Verweis auf die Datei (rot dargestellt) im Projektnavigator. Das Löschen der (jetzt nicht vorhandenen) Datei im Projektnavigator brachte die automatische Vervollständigung auf magische Weise zurück.

Es half keine Menge an Bereinigung, Löschen abgeleiteter Daten usw. Ich habe erst festgestellt, dass die gelöschte Datei noch angezeigt wird, als ich versucht habe, mein Projekt zu erstellen, was natürlich fehlgeschlagen ist, weil diese Datei nicht gefunden werden konnte.

Hoffe das hilft jemandem 30 Minuten zu sparen :)

JohnV
quelle
Siehe meine Antwort für den Grund warum.
James Bush
@ponury, ich verstehe es nicht ... OP zweiter Absatz ist eine Lösung, nein?
brasofilo
1

Verwenden Sie Command + B
oder, Command + R um das Projekt zu erstellen oder auszuführen.
Xcode bringt manchmal etwas durcheinander;)

Mehdi
quelle
1
  1. Überprüfen Sie, ob Sie unter Suggest completions while typingXcode -> Einstellungen -> Textbearbeitung die Option ausgewählt haben
  2. Navigieren Sie im Finder zu Benutzer-> Bibliothek-> Entwickler-> Xcode-> DerivedData und löschen Sie den Ordner DerivedData
Qingfeng
quelle
1

Mein Fall scheint zu spezifisch zu sein, um zu helfen, aber es könnte jemandem eine Vorstellung davon geben, wie eine fehlerhafte automatische Vervollständigung gelöst werden kann. Xcode 10.2.1.

In meinem Fall funktionierte die automatische Vervollständigung nicht mehr und keine dieser anderen Antworten half mir. Außerdem war zu hören, dass der Lüfter am Computer lauter wurde, was darauf hinwies, dass etwas überlastet war (keine anderen Apps wurden ausgeführt). Es sollte beachtet werden, dass ich auf einem MacBook Pro-Laptop bearbeitete. Es schien damit verbunden zu sein, dass der Herausgeber Schwierigkeiten hatte, die von mir geschriebene Gleichung zu analysieren:

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)
 }

Ich wollte eine Textansicht je nach Benutzereinstellungen links, rechts oder in der Mitte animieren. Das newPositionist ein CGPoint, zu dem der Text animiert wird. Wie auch immer, ich teilte die Gleichungen auf und plötzlich fing die automatische Vervollständigung an zu arbeiten und der Lüfter wurde leise! Ich konnte dieses spezielle Problem mehr als einmal neu erstellen, indem ich den obigen Code erneut eingab und ihn dann ersetzte durch:

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
 }
Todd
quelle
1

Ich möchte dem Lösungsstapel noch eine hinzufügen, da dies die einzige ist, die für mich funktioniert hat und hier nirgends zu finden ist.

Xcode wird normalerweise mit zwei Standard-Build-Konfigurationen für jedes Projekt geliefert. Release& Debug. Ich habe einen zusätzlichen für meine Unit-Tests angerufen Testing. In Xcode 10.1, 10.2, 10.3 und 11 Beta scheint das neue Build-System es nicht zu mögen und wird nur automatisch vervollständigt, wenn Sie entweder Releaseoder verwenden Debug. Jede benutzerdefinierte Build-Konfiguration unterbricht die automatische Vervollständigung in gemischten (swift + objc) Projekten mit Komponententests.

LimeRed
quelle
0

Dieser Link hat mir geholfen. Öffnen Sie die Build-Einstellungen und füllen Sie die Framework-Suchpfade aus. Siehe das folgende Bild.

Geben Sie hier die Bildbeschreibung ein

Muruganandham K.
quelle
0

Erstellungsfehler können die automatische Vervollständigungsfunktion in Xcode beeinträchtigen.

Adobels
quelle
0

Ich hatte das Problem mit 100% nicht automatisch zu vervollständigen, keiner der hier geschriebenen half. Eines ist mir aufgefallen: Es wurde direkt nach dem Hinzufügen einiger Entitäten zur .xcdatamodel-Datei beschädigt, die standardmäßig eine Codegen-Klassendefinition haben.

Daher war ich nicht überrascht, als ich Codegen im alten Stil verwendete (und natürlich Klassen generierte), um das Problem sofort zu beheben, auch ohne den xcode neu zu starten.

Geben Sie hier die Bildbeschreibung ein

HotJard
quelle
0

Mit Xcode 11.1 Clean Build Folderreichte es nicht aus, abgeleitete Daten einfach auszuführen oder zu löschen, um die automatische Vervollständigung zu beheben.

Erst nach dem Neustart meines Mac war alles wieder normal

Ely
quelle
0

Wenn Sie Probleme mit der seltsamen Vervollständigung / automatischen Vervollständigung / Intellisense haben (keine Standardmethoden wie Delegaten und Datenquellenprotokollmethoden werden angezeigt), ändern Sie einfach Ihr Ziel (z. B. vom Simulator iPhone 8 zum realen Gerät), erstellen Sie das Projekt und wechseln Sie zurück zu Ihrem ursprünglichen Ziel .

Ähnlich verhält es sich mit Problemen mit Interface Builder (Storyboards), bei denen nichts angezeigt wird, sondern nur "nichts ausgewählt", wenn Sie einen Teil der Ansicht auswählen. Wechseln Sie einfach zu einem anderen Xib / Storyboard (oder erstellen Sie sogar ein neues), prüfen Sie, ob es dort funktioniert, und wechseln Sie zurück.

Diese Problemumgehungen haben in beiden Fällen für mich funktioniert (hatten beide Probleme an einem Tag mit einem Projekt auf Xcode 10.2.1). Aus dem, was ich in allen Internetforen gesehen habe, geht hervor, dass dies Fehler sind, die seit Xcode 6.x oder so nie behoben wurden.

Prost!

Jahr
quelle
0

In meinem Fall (Xcode 11.1) geschah dies, als ich die automatische Indizierung von Xcode mit diesem Befehl stoppte defaults write com.apple.dt.Xcode IDEIndexDisable -bool true.

Also rolle ich es zurück mit defaults write com.apple.dt.Xcode IDEIndexDisable -bool false. Starten Sie dann macOS neu und führen Sie Xcode erneut aus.

Reza Dehnavi
quelle
0

Hatte das gleiche Problem mit Xcode 11.3. Nichts oben hat nicht geholfen, es stellte sich heraus, dass ich Build-Fehler hatte. Beheben Sie einfach die Build-Fehler und die automatische Vervollständigung funktioniert wieder.

Alexander Nikolenko
quelle