Xcode Code Sense Farbe / Vervollständigung funktioniert nicht

70

BEARBEITEN: Das ist seltsam ... Wenn ich im Begrüßungsbildschirm auf das Element "Letzte Projekte" für das Projekt doppelklicke, funktioniert die Codeerkennung und -färbung einwandfrei, aber wenn ich nur auf Open(unten rechts im Begrüßungsbildschirm) klicke, funktioniert dies nicht. Das Öffnen von File > Recent projectsfunktioniert auch nicht und das Doppelklicken auf die .xcodeprojDatei im Finder funktioniert auch nicht .


Code Sense für ein iPhone OS 3.0-Projekt, an dem ich seit mehreren Monaten arbeite (durch verschiedene Installationen / Versionen von XCode), funktioniert nicht mehr. Wenn ich das tue NSString *myString, wäre der gesamte Code beispielsweise schwarz (keine Färbung, keine Option + Doppelklick, keine Code-Vervollständigung). Code Sense "funktioniert" nur für meine eigenen Klassen / Methoden / Eigenschaften, jedoch nicht für eine der SDK-Klassen. Wenn ich ein neues Projekt von Grund auf neu erstelle, funktionieren all diese Funktionen.

Ich habe bereits versucht, das "Basis-SDK für alle Konfigurationen" in diesem Projekt zu ändern. Ich habe bereits versucht, "Code Sense Index neu zu erstellen". Ich habe bereits "Alle Ziele bereinigen" ausprobiert.

Die Dokumentation in den Einstellungen wird heruntergeladen und funktioniert. Wenn ich zum Beispiel das NSStringObige auswähle und mit der rechten Maustaste -> Text in der Dokumentation suchen, erhalte ich das Fenster mit allen Verweisen auf die Klasse.

Alle Ideen werden sehr geschätzt.

mga
quelle
Ich hatte das ähnliche Problem nur für ein Projekt. Code Sense Farbe / Vervollständigung funktioniert gut für andere Projekte. Hast du es gelöst?
Amit Vaghela
irgendwie ... das neue sdk update hat keine probleme. Was mir aufgefallen ist, ist, dass es einige Sekunden dauert, bis die Farbanalyse abgeschlossen ist
mga
1
Ich verliere meine automatische Vervollständigung und die Textfarbe jedes Mal, wenn ich eine in der Projektdatei prefix.pch hinzugefügte Datei ändere. Die Antworten darunter gaben mir die automatische Vervollständigung und die Textfärbung zurück, aber der Fehler tritt immer noch auf, wenn ich in prefix.pch importierte Dateien ändere. Hat jemand herausgefunden, wie man dieses Problem behebt?
Booker
Ab Xcode 4.4 scheint dieses Problem viel besser zu sein.
Makdad

Antworten:

10

Holen Sie sich Informationen zum Projekt in Xcode und ändern Sie das Projektformat so, dass es mit der von Ihnen verwendeten Version von Xcode übereinstimmt (zum jetzigen Zeitpunkt "Xcode 3.2-kompatibel").

Sie können die abgeleiteten Daten auch löschen, aber wenn Sie Ihr Projektformat nicht aktualisiert haben, tritt der Fehler fast sofort wieder auf. (Es kann sogar nach dem Aktualisieren Ihres Projektformats passieren, aber ich musste DerivedData früher mehrmals am Tag löschen, und ich glaube, ich habe es seit dem Reparieren des Projekts nur einmal gemacht.)

Wie an anderer Stelle erwähnt, kann der Wechsel zu LLVM hilfreich sein. Aber wenn ich diese Antwort (2012) aktualisiere, sollten Sie trotzdem LLVM verwenden.

Steven Fisher
quelle
Ein paar Mal Xcode neu zu starten und diese Einstellung ein paar Mal hin und her zu wechseln, hat das für mich behoben. Ich habe meinen Compiler auf LLVM 2.1 eingestellt.
Sam Soffes
204

In Xcode 4 konnte ich auch keine Schaltfläche "Code Sense neu erstellen" finden. Wenn Sie jedoch zu "Fenster -> Organizer" wechseln, wählen Sie die Registerkarte "Projekt" und klicken Sie neben dem Ordner "Abgeleitete Daten" auf "Löschen ..." scheint es den gleichen Effekt zu haben. (Ich habe diesen Tipp von http://blog.slidetorock.com/xcode-4-code-sense-autocompletion-problems erhalten , was darauf hinweist, dass er wiederum von /programming/2138047/xcode abgerufen wurde -code-verliert-Syntax-Färbung - aber ich sehe es in keiner der Antworten dort. Sehr neugierig.)

Arkaaito
quelle
4
Ich habe versucht, xcode neu zu starten und den Compiler auf / von CGG / LLVM zurückzusetzen, aber keine davon hat funktioniert. Das hat den Trick für mich getan, danke!
Adam.wulf
1
Arbeitete auch für mich in XCode 4
Barfoon
1
Dies hat funktioniert und ist eine schnelle und einfache Lösung für einen lästigen Fehler. Jeder sollte dies versuchen, bevor er einige der kreativeren Lösungen versucht.
Murdock
11
Obwohl dies funktioniert, passiert es mehrmals am Tag! Am Ende muss ich die abgeleiteten Daten vielleicht 4-6 Mal am Tag löschen. Es ist ziemlich nervig ...
Roller133
1
Du hast mein Leben gerettet. Ich schulde dir eins :)
Marzapower
37

Die Syntaxfärbung funktioniert wieder, nachdem ich die folgenden Schritte ausgeführt habe:

  • Gehen Sie zu Organizer> Projekt> Abgeleitete Daten aus Ihrem aktuellen Projekt löschen
  • Reinigen und bauen
  • Schließen und beenden Sie XCode und öffnen Sie das Projekt erneut
  • Die Syntaxfärbung wird nach der Neuindizierung des Projekts gut

PS

  • LLVM Complier 3.0
  • Ich habe -fno-objc-arc Complier Flags für alle Bibliotheken von Drittanbietern verwendet (z. B. ASIHTTPRequest).
  • Mein Projekt wurde aus XCode 4.2 erstellt
Karlogeo
quelle
Arbeitete für mich, Xcode 4.3.2. Ich habe geschrien, weil es die halbe Zeit funktioniert hat. VIELEN DANK!!!
Feloneous Cat
Die ersten 2 Schritte haben bei mir funktioniert! Danke! xcode 4.3.2. Aufgerüstet, um neues iPad zu unterstützen, aber unterwegs die automatische Vervollständigung verloren.
Sunkas
35

Führen Sie es bei Bedarf jedes Mal im Terminal aus

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

Funktioniert gut. Hervorheben und Codesense zurück zu mir! Irgendwann benötigt Make Clean, damit es funktioniert.

Hinweis: Wie ich sehe, werden Snapshost und andere Xcode4-Funktionen entfernt. Aber wir benutzen es nicht :)

Sergey Kopanev
quelle
5
Das ist besser als die anderen Antworten hier. Und es funktioniert ohne Neustart von XCode.
Shiki
2
Einfache und gute Lösung! Vielen Dank!
Neowinston
2
Das gleiche hier habe ich gerade nach ungefähr einer halben Stunde der Suche verwendet, und es funktioniert! Nimmt nicht einmal viel Arbeit auf ...
David Skrundz
12

Ich hatte das gleiche Problem in Xcode 4 und löste es, indem ich den Compiler von GCC 4.2 auf LLVM GCC 4.2 änderte.

Thomas Müller
quelle
Dies hat es für uns behoben. Vielen Dank!
Taum
Das hat es für mich behoben! Vielen Dank.
Kyle
2
Interessant. Ich habe es LLVM GCC 4.2 geändert, einige Kompilierungsfehler erhalten, es wieder in Apple LLVM 3.1 geändert und die Syntaxhervorhebung ist zurück.
Kevlar
Kann nicht mit LLVM GCC 4.2 kompiliert werden, aber der einfachste Weg, die automatische Vervollständigung wiederherzustellen, besteht darin, zu LLVM 4.2 zu wechseln -> versuchen Sie es zu kompilieren -> zurück zu LLVM 3.1 und ich bekomme es zurück. Aber hat jemand herausgefunden, wie man diesen Fehler vermeidet?
Booker
Ich hatte das gleiche Problem in Xcode 5.0.2. Keiner der anderen Schritte auf dieser Seite hat funktioniert. Ich habe den Compiler für Zielerstellungsoptionen in "Standard-Compiler (Apple LLVM 5.0)" geändert, obwohl die Option bereits als "Apple LLVM 5.0" festgelegt war. Ich musste die Standardoption speziell auswählen und sie wurde sofort für mich behoben.
Eklektische DNA
10

Ich habe einen Weg gefunden, diesen Fehler zu vermeiden. Ich habe gesehen, dass der Fehler jedes Mal auftritt, wenn ich eine Datei ändere, die in die Datei prefix.pch importiert wird.

Versuchen Sie, Ihre eigene Datei oben in der importierten Liste über UIKit.h und Fonudation.h zu importieren und NICHT am Ende, wie es jeder tut.

In meiner Datei prefix.pch:

#ifdef __OBJC__
    #import "myFile.h"
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif
Bucher
quelle
1
Für mich behoben .. ich liebe dich. Was für Kopfschmerzen
Morgz
1
Hat super funktioniert :) danke ... BEARBEITEN: nur ein Scherz, das Ändern der Reihenfolge hat mich das Projekt nicht kompilieren lassen. 2. BEARBEITUNG: Seien Sie vorsichtig, wenn myFile.h <UIKit / UIKit.h> verwendet ... funktioniert jetzt!
VTS12
4

Es scheint eine Vielzahl von vorgeschlagenen Ursachen und Lösungen für dieses Problem zu geben, und ich glaube, ich habe die meisten davon ausprobiert. Was für mich (in Xcode 4.1) schließlich funktioniert hat, war:

  • Löschen Sie Verweise auf die Problemdateien im Projektnavigator
  • Verschieben Sie die Problemdateien aus dem Projektordner im Finder
  • Klicken Sie im Projektnavigator mit der rechten Maustaste und wählen Sie Dateien hinzufügen zu ...
  • Suchen Sie die Dateien, die ich gerade verschoben habe, und fügen Sie sie wieder dem Projekt hinzu. Stellen Sie dabei sicher, dass "Elemente in den Ordner der Zielgruppe kopieren (falls erforderlich)" ausgewählt ist.

Code Sense wiederhergestellt.

Um genau zu sein, ist mein genaues Problem, wenn ich eine neue Klasse per Rechtsklick im Projektnavigator erstelle, dass etwa 30 - 40% des Timecode-Sinns in der Header-Datei der neuen Klasse nicht funktionieren. Interessanterweise funktioniert es in der Implementierung.

Dinge, die ich ausprobiert habe und die fehlgeschlagen sind:

  • Löschen des abgeleiteten Datenordners im Organizer
  • Löschen des abgeleiteten Datenordners im Finder
  • Erstellen einer völlig neuen Klasse von Grund auf neu (Warum dies nicht funktioniert hat, weiß ich nicht.)
  • Ändern der Syntax Coloring-Sprache
  • Ändern des Compilers zu und von allen Optionen mehrmals
  • Angeben eines bestimmten Header-Suchpfads

Ich würde gerne andere mögliche Vorschläge machen, um diesem Problem ein Ende zu setzen, denn es ist wirklich ärgerlich!

GnarlyDog
quelle
Dies funktionierte bei mir in XCode 9.3beta für .hpp-Dateien, die sich in Unterordnern einer Ordnerreferenz befanden. Sie wurden nur von clang module.modulemap-Dateien referenziert, die die Verwendung von .hpp für jedes Modul definieren. 9.1 und 9.3beta waren kaputt, alle oben genannten fehlgeschlagenen Versuche scheiterten auch für mich. Entfernen Sie einfach die Ordnerreferenz und fügen Sie sie wieder hinzu. Fehlerhervorhebung zurückgegeben.
Asher
4

Ich hatte auch dieses Problem. Ich hatte zuvor die Indizierung deaktiviert, um die Xcode-Operationen zu beschleunigen, und wusste zu diesem Zeitpunkt nicht, dass dadurch ein Teil der Code-Hervorhebung gestoppt werden würde. Wenn Sie dies getan haben, können Sie die Indizierung wieder aktivieren, indem Sie dies im Terminal eingeben:

defaults write com.apple.dt.XCode IDEIndexDisable 0

Wenn Sie die Indizierung deaktivieren möchten, geben Sie dies in das Terminal ein:

defaults write com.apple.dt.XCode IDEIndexDisable 1
Verbrecherischer CodeMonk
quelle
3

Hatte die gleichen Probleme in Xcode 4.0.2. Code Sense funktionierte in allen bis auf zwei Dateien, einer .m-Datei und der entsprechenden .h-Datei. Ich habe alles versucht - außer den Code-Sense-Index neu zu erstellen, da ich die Schaltfläche nirgendwo finden konnte - nichts hat funktioniert. Am Ende habe ich die korrelierten Dateien, .m, .h und .xib gelöscht. Neue Dateien erstellt, jetzt funktioniert alles wie erwartet.

drct
quelle
2

Zusätzlich zu dem, was ich getan habe, musste ich auf die Schaltfläche "Code Sense Index neu erstellen" klicken. Es befindet sich unten auf der Registerkarte "Allgemein" in "Informationen abrufen" des Projekts.

Kolinko
quelle
2

Wenn Sie feststellen, dass dies nur bei einigen Ihrer Dateien der Fall ist, stellen Sie sicher, dass die .m-Datei Mitglied Ihres Ziels ist.

Andy
quelle
Tolles Zeug. Genau das brauchte ich.
Dev Kanchen
Vielen Dank! Ich hatte aus mehreren Gründen einen Fehler beim Hervorheben der Syntax, aber diesmal war es das.
Form
1

Syntaxfärbung, automatische Vervollständigung, Springen zu Header-Dateien usw. sind für mich seit XCode4 völlig kaputt. Meine Symbolnavigatoransicht ist vollständig leer. Hatte nicht bemerkt, wie abhängig ich von der automatischen Vervollständigung geworden war, ist meine Produktivität um einen Faktor gesunken. Seltsam ist, dass meine Teamkollegen verschiedene Kombinationen fehlender Funktionen sehen - nur ich habe das Glück, alles verloren zu haben. FWIW Ich bin auf der neuesten Generation MBP.

Sunil Gowda
quelle
1

Ich hatte genau das gleiche Problem, aber keines der oben genannten Probleme hat bei mir funktioniert. Am Ende musste ich xcode go to öffnen

File>Open Recent> Clear Menu

Dies hat das Problem für mich behoben. Es scheint, dass beim Importieren eines Github-Projekts, das meinen Code-Sinn nach dem Löschen der letzten Elemente und dem erneuten Öffnen des Projekts durcheinander gebracht hat, alles einwandfrei funktioniert hat.

Anthony McCormick
quelle
1

Ich hatte dieses Problem nur bei einer meiner .m-Dateien, und nachdem ich viele der oben genannten Dinge ausprobiert hatte, stellte sich heraus, dass XCode irgendwann die .m-Erweiterung entfernt hatte. Es wurde im Projektnavigator immer noch als "Myclass.m" aufgeführt, aber wenn Sie mit der rechten Maustaste darauf klicken und "Im Finder anzeigen" auswählen, wurde die Datei nur "Myclass" genannt (und seltsamerweise im Unterordner "en.lproj" abgelegt!).

Das Entfernen der Referenz aus dem Projektnavigator, das Umbenennen und Verschieben der Datei und das erneute Hinzufügen zum Projekt hat mein Problem behoben.

MarkusEkblad
quelle
1

Suchen Sie in den Build-Einstellungen nach 'GCC_INCREASE_PRECOMPILED_HEADER_SHARING' und ändern Sie es in YES. - Das hat bei mir funktioniert!

Geben Sie hier die Bildbeschreibung ein

thatzprem
quelle
0

Was für mich funktioniert hat, war die Änderung des Compilers auf "LLVM Compiler 2.0".

Chris Livdahl
quelle
0

Code Sense funktionierte für die meisten Dateien mit Ausnahme von 3 oder 4 .m / .h-Dateien. Ich habe alles oben versucht, und das einzige, was für mich funktioniert hat, war die Lösung von drct. Ich habe xCode geschlossen, das Projekt in einen anderen Ordner verschoben und erneut geöffnet.

Ich finde jetzt, wenn ich mit der rechten Maustaste auf einen Ordner (oder eine Gruppe) im Projektnavigator klicke und "Neue Datei" auswähle. Code Sense funktioniert nicht.

Wenn ich stattdessen das Hauptmenü verwende und 'Datei >> Neu >> Neue Datei' auswähle, funktioniert die Codeerkennung einwandfrei.

Niall
quelle
0

Eine Sache, auf die ich heute gestoßen bin und die sich auf die Code-Färbung auswirkte, ist, dass ich versehentlich eine Header-Datei (.h) unter Ziel -> Phasen erstellen -> Quellen kompilieren hinzugefügt habe. Einmal entfernt, kam die Codefarbe auf magische Weise zurück :)

Marko Hlebar
quelle
0

Manchmal verhindert das Hinzufügen mehrzeiliger Kommentare am Ende der @ end-Anweisung im Code die automatische Vervollständigung in Xcode 6.0.1. Ich hatte das gleiche Problem. Probieren Sie es einfach aus ..

Dhaval H. Nena
quelle
0

Warum ich wieder glücklich bin :)

Ich hatte dieses Problem, aber einige Tage bevor ich den XCode-Indizierungsprozess deaktivierte.

Es wurde behoben, indem dieser Befehl in das Terminal eingefügt wurde. Ich hoffe es hilft jemandem.

defaults write com.apple.dt.XCode IDEIndexDisable 0

Und ja, ich benutze Xcode 7.0

Gajendra K Chauhan
quelle
Die Antwort von Felonious CodeMonk ist ebenfalls nützlich.
Gajendra K Chauhan
0

In meinem Fall hat nur eine .m-Datei dieses Problem. Die automatische Vervollständigung wird einwandfrei angezeigt, zeigt jedoch nicht alles an. Wenn ich zum Beispiel "NS" eingebe, wird die automatische Vervollständigung nur mit "NSMutableDictionary" angezeigt und es gibt nichts anderes! Ich habe alles versucht, habe 1 Stunde lang überall gesucht, aber nichts hat es behoben.

Dann habe ich aus Neugier einen Kommentarblock gelöscht, den ich zuvor am Ende der .m-Datei eingefügt habe (unter dem Wort @end). Nachdem dies gelöscht wurde, funktioniert die automatische Vervollständigung wieder wie gewohnt!

Hier ist der Täter: Geben Sie hier die Bildbeschreibung ein

Wenn Ihre automatische Vervollständigung nur für eine Datei fehlschlägt, sollten Sie dies überprüfen und alles unter @end word löschen.

GeneCode
quelle
0

Versuchen Sie, die XCODE-IDE zu schließen und zu öffnen.

Idanuda
quelle
-2

Denn jemand weiß immer noch nicht warum. Öffnen Sie mit XCode 8.2 Arbeit für mich. Der neueste XCode scheint dieses Problem zu haben

Hieu Tran
quelle
Dies ist ein Kommentar zu einem Beitrag und keine Antwort. Möglicherweise waren Sie zu diesem Zeitpunkt ein neuer Benutzer und hatten möglicherweise nicht das richtige Recht Berechtigungen zum Hinzufügen von Kommentaren . Ich würde jedoch empfehlen, diese Antwort zu löschen.
App Dev Guy