it-swarm.com.de

Xcode 9 Autocomplete funktioniert nicht 100% - Teilweise funktioniert

Heute morgen zeigt Xcode 9.0 (9A235) eine neue/seltsame Autovervollständigungsbox, die nicht mehr so ​​ist wie früher. Wie erhalte ich das Feld für die vollständige automatische Vervollständigung, sodass die automatische Vervollständigung so aussieht, wie es normalerweise der Fall ist? 

 enter image description here

48
Ernie

Das Löschen des DERIVED DATA-Ordners schien mein Problem zu beheben. Danke an diesen Beitrag: Swift println () zeigt keine Autocomplete-Optionen beim Schreiben von Code

39
Ernie

Versuchen: 

  1. Gehe zu Xcode> Einstellungen> Textbearbeitung
  2. Unter Code-Vervollständigung - Deaktivieren Sie "Vorschlägen während der Eingabe vorschlagen".
  3. Beenden Sie Xcode und starten Sie Xcode erneut.
  4. Gehen Sie zu Xcode> Einstellungen> Textbearbeitung
  5. Beenden Sie Xcode und starten Sie Xcode erneut.
  6. Gehen Sie jetzt zu Code Vervollständigung und check 'Vervollständigung beim Tippen vorschlagen'.
  7. Versuchen Sie, die Bibliotheksfunktion oder die Enumeration einzugeben und genießen Sie es!
64
Lal Krishna

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

Reinigen Sie das Projekt -> Cmd + Shift + K

Bereinigen Sie den Build-Ordner -> Befehlstaste + Umschalttaste + Wahltaste + K

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


3

Überprüfen Sie die Compile-Quellen Ihrer Build-Phase.

Jede .Swift- und .m-Datei im Projekt sollte in dieser Liste enthalten sein, oder sie wird in diesen Dateien nicht automatisch vervollständigt.


4

Optimieren Sie Ihren Editor:

Verwenden Sie fileprivate für jede Klasseneigenschaft und Funktion, um den Umfang der Compiler-Arbeit pro Element zu reduzieren.

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

Vermeiden Sie die Verwendung von Type Inferance, wenn das Ergebnis eine komplexe Berechnung ist, und versuchen Sie, komplexe Berechnungen in let this = smallerOperation-Anweisungen aufzuteilen

18
Sethmr

Dies kann passieren, wenn die Datei kein Mitglied des Ziels ist. Öffnen Sie die Datei, in der Autocomplete nicht funktioniert, und zeigen Sie oben rechts in Xcode (blau in der Abbildung unten) die Registerkarte "Dienstprogramme" .  Screenshot of Xcode top right view buttons

 Screenshot of Xcode Target Membership options

Stellen Sie sicher, dass Ihr Ziel (normalerweise der Name Ihrer App) aktiviert ist. Die Autovervollständigung sollte fast sofort funktionieren, ohne dass Xcode neu gestartet, Bereinigung durchgeführt oder abgeleitete Daten gelöscht werden muss.

11
Isaiah Turner

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

4
Martin Jun

Ich verwende Xcode 10.2 und hatte das gleiche Problem.

Diese Antwort von Axel half mir zu beheben.

Wie auch immer, ich werde ein bisschen mehr beschreiben:

  1. Gehe zu YourProject.xcodeproj indem du mit der rechten Maustaste klickst und Show Package Contents öffnest
  2. Gehe zu xcuserdata und lösche deinen youruser.xcuserdatad

Wenn Sie auch die xcworkspace haben (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. Gehe zu YourProject.xcworkspace indem du mit der rechten Maustaste klickst und Show Package Contents öffnest
  2. Gehe zu xcuserdata und lösche deinen youruser.xcuserdatad

  3. Beenden Sie Xcode

  4. Löschen Abgeleitete Daten mit Terminal:

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

  1. Öffne Xcode und überprüfe, ob es funktioniert.

 enter image description here 

4
Gent Berani

Bitte versuchen Sie folgendes:

Wählen Sie die Datei aus >> Prüfen Sie, ob die Datei zu UITesting- oder UnitTesting-Zielen hinzugefügt wird (Dateiinspektor -> Zielmitgliedschaft) . Deaktivieren Sie in diesem Fall die beiden, und stellen Sie sicher, dass nur das Projektziel ausgewählt ist. Dann erstellen Sie und versuchen Sie, ob Autocomplete einwandfrei funktioniert.

Das hat bei mir funktioniert. Ich hoffe es hilft jemandem.

3
abhi1992

Nach langem Suchen habe ich das Problem endlich für mich behoben. In Xcode> Einstellungen> Textbearbeitung habe ich unter "Code Completion" aus irgendeinem Grund die Option "Escape-Taste zum Anzeigen von Abschlussvorschlägen verwenden" aktiviert. Sobald ich dieses Kontrollkästchen deaktiviert habe, funktionierte die automatische Vervollständigung wie ein Zauber, ohne Xcode neu starten zu müssen! (Xcode 10)

1
Xcoder

Verwende Command + B
oder Command + R zu Build oder Run dem Projekt
Xcode bringt manchmal etwas durcheinander;)

1
Mehdi

Ich habe gerade einen Tag verloren, als ich versuchte, den autokompletten Albtraum von Xcode (9.2) zu lösen. Das Löschen abgeleiteter Daten schien kurz zu funktionieren, dann wurden die Dinge umgekehrt. Reboots usw. und andere Vorschläge, dass Voodoo keinen Unterschied machte.

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 wieder in meinem Projekt in Xcode funktioniert. Kann nicht garantieren, dass es weiter funktioniert ...

1
SimonTheDiver

Probleme meistens weil einige Dateien im Projektnavigator fehlen (Build-Fehler)

  1. Drücken Sie Befehlstaste + 1, um den Bereich Project Navigator zu öffnen
  2. Überprüfen Sie, ob Dateien fehlen

Oder du kannst:

  1. DerivedData löschen (Befehl + Shift + K)
  2. Bereinigungsordner löschen (Befehl + Umschalttaste + Option + K)
  3. Drücken Sie erneut auf Build (Befehl + B)
  4. Es sollte ein Build-Fehler angezeigt werden, dass Xcode einige Dateien nicht finden konnte, die die automatische Fertigstellung des Build-Tools verhindern.
  5. Korrigieren und beheben Sie alle fehlenden Dateien, die Sie sehen.

Hoffe das hilft 

1
Vinh Nguyen
  1. überprüfen Sie, ob Sie unter Xcode -> Einstellungen -> Textbearbeitung den Suggest completions while typing ausgewählt haben
  2. navigieren Sie zu user-> Library-> Developer-> Xcode-> DerivedData im Finder und löschen Sie den DerivedData-Ordner
1
qingfeng

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

Data.Swift

Data.Swift

1
ScottyBlades

Dies kann verschiedene Ursachen haben. Einer der Gründe ist, dass es aufgrund von "Speicherproblemen" zu einem Ausfall des Systems kommen kann. Sie können Ihre Speicherbelegung mit "Activity Monitor" in mac ..__ überprüfen.
Reinigen Sie das Projekt mit [Befehl + Umschalt + K]
Beenden Sie den XCode und starten Sie ihn erneut. Erstellen Sie ihn dann einmal und beginnen Sie mit der Eingabe. Nun sollte der Autocomplete funktionieren.

1
Bharath

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

0
Adobels

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

0
TomCobo

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 (Ich habe keine Testziele geprüft)
  4. Wieder bauen

Nach 3 Stunden ist alles fertig - Autocomplete funktioniert so, wie es sollte.

0
Matjan

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

 enter image description here

0
Muruganandham K

Hier ist eine Problemumgehung, aber funktioniert.

  1. Reinigen Sie das Projekt ... Befehl + Umschalttaste + K

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

  3. Löschen Sie abgeleitete Daten für das Projekt ... Dies kann mit Hilfe dieses Links erfolgen:

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

  4. Schließen Sie den XCode.

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

Sobald es mit dem Bauen fertig ist, werden die Vorschläge zurückkommen. Ich habe es zweimal versucht.

0
Abhinav Dobhal

Bei mir trat das Problem auf, als ich alle Änderungen an einer Datei verwarf (unter Source Control> Commit), wodurch die Datei effektiv gelöscht wurde. Das war es, was ich wollte, und ich dachte, dass die Datei und alle Verweise darauf ebenfalls gelöscht würden. 

Im Projektnavigator war jedoch immer noch ein Verweis auf die Datei (rot dargestellt) vorhanden. Durch das Löschen der (jetzt nicht vorhandenen) Datei im Projektnavigator wurde die automatische Vervollständigung auf magische Weise wiederhergestellt.

Es hat nicht geholfen zu säubern, abgeleitete Daten zu löschen usw. Ich habe erst bemerkt, dass die gelöschte Datei immer noch angezeigt wurde, als ich versuchte, mein Projekt zu erstellen, was natürlich fehlgeschlagen ist, weil die Datei nicht gefunden wurde.

Hoffe das hilft jemand 30 Minuten sparen :)

0
JohnV

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

Xcode wird normalerweise mit zwei Standardkonfigurationen für jedes Projekt ausgeliefert. Release & Debug. Ich habe eine zusätzliche für meine Unit-Tests namens Testing. In den Betaversionen von Xcode 10.1, 10.2, 10.3 und 11 scheint es dem neuen Build-System nicht zu gefallen und wird nur dann automatisch vervollständigt, wenn Sie entweder Release oder Debug verwenden. Jede benutzerdefinierte Build-Konfiguration unterbricht die automatische Vervollständigung in gemischten Projekten (Swift + objc) mit Komponententests.

0
LimeRed

Ich hatte das Problem mit 100% nicht funktionierender Auto-Vervollständigung, keiner der hier geschriebenen hat geholfen. Eine Sache, die mir aufgefallen ist, ist, dass sie gleich nach dem Hinzufügen einiger Entities in die .xcdatamodel-Datei, die standardmäßig eine Codegen-Klassendefinition haben, fehlerhaft war.

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

enter image description here

0
HotJard

Mein Fall mag zu spezifisch erscheinen, um zu helfen, aber es könnte jemandem eine Vorstellung davon geben, wie man eine unterbrochene automatische Vervollständigung löst. Xcode 10.2.1.

In meinem Fall funktionierte die automatische Vervollständigung nicht mehr und keine dieser anderen Antworten hat mir geholfen. Außerdem war zu hören, wie der Lüfter am Computer lauter wurde, was darauf hinwies, dass etwas überlastet war (keine anderen Apps liefen). Beachten Sie, dass ich auf einem MacBook Pro-Laptop bearbeitete. Es schien damit zu tun zu haben, dass der Herausgeber Schwierigkeiten hatte, die Gleichung zu analysieren, die ich geschrieben hatte:

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 habe versucht, eine Textansicht nach links, rechts oder in der Mitte zu animieren, je nach den Vorlieben des Benutzers. Das newPosition ist ein CGPoint, zu dem der Text animiert wird. Wie auch immer, ich habe die Gleichungen aufgeteilt und plötzlich begann die automatische Vervollständigung und der Lüfter wurde leiser! Ich konnte dieses spezielle Problem mehrmals nachvollziehen, indem ich den obigen Code erneut eingab und ihn dann durch Folgendes ersetzte:

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
 }
0
Todd

Für mich passierte es in meiner Testdatei, weil es aus irgendeinem Grund nicht zu einem Ziel gehörte. Wenn Sie die Zielmitgliedschaft festlegen, wurde das Problem behoben.

0
Menno