Die automatische Vervollständigung von Xcode 7.3 ist so frustrierend


96

In Xcode gibt es eine neue automatische Vervollständigung. Wahrscheinlich könnte es nützlich sein, weil es nicht nur den Anfang von Namen usw. überprüft. Aber ich habe festgestellt, dass es sehr oft überhaupt keinen Klassennamen oder Konstantennamen usw. findet. Ich muss den gesamten Namen selbst eingeben. Insgesamt habe ich festgestellt, dass es mein Leben schwieriger und das Codieren zeitaufwändiger macht. Gibt es eine Möglichkeit, auf die alte Arbeitsweise umzusteigen?


Diejenigen, die sich mit 7.3 als Beta befasst haben, haben sich wochenlang darüber beschwert: stackoverflow.com/questions/35586056/…
matt

Sie können älteren xcode manuell auf developer.apple.com/downloads herunterladen , z. B. xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
George

43
Ich kann nicht glauben, dass sie eine Hauptveröffentlichung herausgebracht haben, die so wichtig ist wie die automatische Vervollständigung. Es ist, als ob niemand bei Apple tatsächlich Xcode für die Entwicklung verwendet.
Soleil

3
Dies beeinträchtigt meine Produktivität so sehr, dass ich wieder zu Xcode 7.2.1 zurückkehre, damit ich wieder zur normalen Entwicklungsgeschwindigkeit zurückkehren kann. Ich ärgere mich mehr als sonst über Apple. Sie haben mich nicht nur gezwungen, nach El Capitan zu fahren, um Xcode 7.3 auszuführen, sondern als ich dort ankomme, finde ich, dass das versprochene Land weit von einer Realität entfernt ist. Testen sie dieses Zeug überhaupt? Typische Respektlosigkeit gegenüber "ihren" Entwicklern wie immer.
Quintin Willison

2
Xcode 7.3.1 wurde gestern veröffentlicht, nach meinen Tests existiert dieser Fehler immer noch ... Aber Apple sagt, dass sie ihn in 7.3.1 beheben.
Vincent Sit

Antworten:


18

Xcode 7.3.1

  1. Unter Xcode> Einstellungen> Textbearbeitung

    Deaktivieren Sie Enable type-over completions

  2. Starten Sie Xcode neu


14

Es scheint, dass das Deaktivieren des Kontrollkästchens "Typ-Over-Abschlüsse aktivieren" in XCode -> Einstellungen -> Textbearbeitung den Trick macht. Zumindest in meinem Fall fiel die automatische Vervollständigung auf eine alte Art zurück, sodass der Klassenname, den ich zuvor manuell eingeben musste, automatisch vervollständigt werden konnte.


Versuchte es, aber es vervollständigt Klassennamen immer noch nicht richtig.
Erik B

Ich sehe keinen Unterschied.
Müssen noch

Damit dies funktioniert, müssen Sie die Indizierung aktivieren. Um die Indizierung zu aktivieren, können Sie dies nicht in Xcode tun. Sie müssen die folgende Zeile in einer Shell ausführen. Starten Sie dann Xcode neu. % Standard löschen com.apple.dt.Xcode IDEIndexDisable siehe stackoverflow.com/questions/7328041/…
andrewz

5

Dies ist keineswegs eine adäquate Lösung, ABER es hat mir ermöglicht, meine geistige Gesundheit in den letzten Tagen (kaum) aufrechtzuerhalten: Nach jedem Build müssen Sie Ihren Ordner für abgeleitete Daten in den Papierkorb werfen. Sie finden diesen Ordner in Xcode > Preferences > Locations > Derived Data. Wenn Sie das Ganze einfach in den Papierkorb werfen, wird ein Schritt zur erneuten Indizierung eingeleitet, mit dem die ordnungsgemäße Autovervollständigungsfunktion wiederhergestellt werden soll. Leider habe ich festgestellt, dass das Verhalten der automatischen Vervollständigung nach dem Erstellen in den fehlerhaften Zustand zurückkehrt.


4

Öffnen Sie einfach den von Xcode abgeleiteten Datenordner und löschen Sie den Ordner

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

Starten Sie dann Xcode neu, jetzt funktioniert die automatische Vervollständigung wie ein Zauber


Das hat bei mir funktioniert, ich weiß nicht, warum es negativ bewertet wird.
Mike M

1

Ich habe den Eindruck, dass einige "Teile" der automatischen Vervollständigung einfach nach einer Weile fehlschlagen. Ich starte den Mac neu, damit er wieder funktioniert. Aber manchmal scheitert es ziemlich bald wieder. Vielleicht reicht die Antwort von @Alex Bykov in Kombination mit einem Neustart aus.

Wie auch immer: Die automatische Vervollständigung von Xcode war immer Mist. AppCode hat es früher viel besser gemacht. Leider noch nicht mit schnell.


1

Xcode geschlossen, Xcode geöffnet, indizieren lassen, es hat funktioniert.


1
Leider ist es die einzige Option.
Der

0

Es wird kein Klassenname gefunden

Als Workaround können Sie versuchen, Befehl + Umschalt + K und Befehl + B mehrmals zu drücken. Dies funktioniert vorübergehend.


1
Hat Cmd + Shfit + K (Bereinigen), Cmd + Shfit + Opt + K (Bereinigungsordner bereinigen ) Xcode geschlossen, gelöscht ~/Library/Developer/Xcode/DerivedData, OS X neu gestartet und es hat immer noch nicht geholfen. :-)
TaylanUB

1
Wir haben ein ziemlich großes Projekt, dessen Kompilierung 20 Minuten dauert.
Langbogen

0

Xcode 7.3.1

Ich werde einen weiteren möglichen Grund nennen, den wir nach ein paar Tagen herausgefunden haben. Wir haben mehrere Schemata, und in einem davon importierte der Bridging-Header eine Datei, die nicht mehr existierte. Es wurde also beim Kompilieren und Ausführen nicht unterbrochen (der Header gehört zu einem anderen Schema), aber die automatische Vervollständigung wurde unterbrochen (es konnte keine Objective-C-Klasse gefunden werden).

Hoffe es würde jemandem helfen!


0

Nachdem ich verschiedene Methoden ausprobiert habe:

  • Abgeleitete Daten löschen
  • Modul in den Build-Einstellungen deaktiviert
  • Voll sauber
  • Relaunch

Nur das hat funktioniert:

  • Suchen Sie nach @end in Ihren Dateien nach auskommentiertem (/ * abc * /) Code und löschen Sie ihn.

Gutschrift an Max_B: https://forums.developer.apple.com/thread/7439

In meinem Fall wurden andere Projekte automatisch korrekt abgeschlossen. Wenn alle Ihre Projekte den Code nicht richtig vorhersagen, liegt möglicherweise ein anderes Problem vor, und die anderen Antworten funktionieren möglicherweise.


-1

Beim Versuch, eine OS X-App zu erstellen, ist dieses Problem aufgetreten. Ich konnte dieses Problem beheben, indem ich sicherstellte, dass die Xcode 7.3-Dokumentation und die OS X 10.11.4-Dokumentation tatsächlich heruntergeladen wurden. Dadurch wurde meine Autocomplete-Funktionalität vollständig wiederhergestellt. Meine vollständigen Anweisungen finden Sie unten sowie in meiner Antwort auf eine ähnliche Frage: https://stackoverflow.com/a/39420664/3444925

Ich hatte dieses Problem selbst und nachdem ich alle anderen ähnlichen Fragen und Antworten dazu durchgesehen hatte, konnte ich keine Lösung finden. Endlich habe ich gefunden, was für mich funktioniert.

Gehe zu Xcode -> Preferences -> Components. Dort finden Sie wahrscheinlich einen Bildschirm, der wie folgt aussieht:

Geben Sie hier die Bildbeschreibung ein

Dies zeigt, dass die Dokumentation nicht heruntergeladen wurde und daher alle Versuche, die Anwendung neu zu indizieren oder neu zu erstellen, ohne die Dokumentation herunterzuladen, Sie daran hindern würden, die Autovervollständigungsfunktion zu verwenden.

Nachdem ich die Xcode 7.3-Dokumentation und die OSX 10.11.4-Dokumentation heruntergeladen hatte, reichte dies aus, um die Autocomplete-Funktionalität wiederherzustellen (ich habe versucht, eine OS X-App zu erstellen. Sie können also beliebig viele Dokumentationen herunterladen, die für Sie relevant sind ).


Links zu externen Ressourcen werden empfohlen. Fügen Sie jedoch einen Kontext um den Link hinzu, damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist. Zitieren Sie immer den relevantesten Teil eines wichtigen Links, falls die Zielwebsite nicht erreichbar ist oder dauerhaft offline ist.
Pableiros

Ich habe gerade meine vollständige Antwort hier als Blockzitat hier hinzugefügt @pableiros
jkunzika

-1

Ich bin erst darauf gestoßen, als ich ein paar neue Klassendateien erstellt habe. Andere Klassen funktionierten gut, aber die automatische Vervollständigung würde für nichts in den neuen Dateien funktionieren ...

UPDATE (für mich) - Ich musste diese Dateien ALLEN meinen Zielen hinzufügen, einschließlich der Unit-Test-Ziele, obwohl ich sie noch nicht verwendet habe.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.