Xcode erstellt nach jedem Tastendruck ein Storyboard

145

Mein Xcode-Projekt mit einem Storyboard, das kürzlich in einem sehr seltsamen Zustand eingegeben wurde: Xcode erstellt nach jedem Tastendruck das gesamte Projekt und insbesondere das Storyboard . Ich habe weder in meinem Projekt einen Grund für dieses Verhalten gefunden, noch alle interessanten Dateien (Storyboard und Projekt) unterschieden, noch eine Einstellung in Xcode (vielleicht konnte ich sie einfach nicht finden?). Unnötig zu erwähnen, dass diese "Funktion" die Arbeit an meinem Projekt nahezu unmöglich macht da die CPU ständig damit beschäftigt ist, das Storyboard neu zu erstellen, wenn ich neuen Code eingebe. Hat das jemand gesehen?

MrTJ
quelle

Antworten:

415

Dies wird durch die IB_DESIGNABLEDefinitionen in den Quellheaderdateien verursacht. Wahrscheinlich ist dies nur dann problematisch, wenn die Header-Datei IB_DESIGNABLE(auch implizit) in der Quelldatei enthalten ist, die Sie gerade bearbeiten.

Ich habe keine endgültige Lösung gefunden, um IB_DESIGNABLEdas Storyboard und die Quelldateien kontinuierlich zu deaktivieren und damit zu kompilieren. Ich würde mich über ein Xcode-Flag freuen, um dies vorübergehend zu deaktivieren. Ich habe auch versucht, die IB_DESIGNABLEmit #ifdefMakros zu umgeben, aber sie werden auch dann berücksichtigt, wenn die #ifdefAuswertung falsch ist. Nacheinander zu kommentieren IB_DESIGNABLEhilft, aber es ist keine praktikable Lösung mit vielen IB_DESIGNABLEs.

Aktualisieren

Ich habe endlich einen schnellen Weg gefunden, um dieses nervige Verhalten zu vermeiden. Wenn Sie das Storyboard im aktiven Fenster geöffnet haben, deaktivieren Sie "Ansichten automatisch aktualisieren" im Editor-Menü. Dadurch werden die Ansichten im Storyboard-Editor, die Ihren benutzerdefinierten Code verwenden, nicht mehr aktualisiert, und Ihre Entwicklung wird erheblich beschleunigt. Wenn Sie die Just-in-Time-Kompilierung erneut benötigen, um eine visuelle Vorschau Ihres benutzerdefinierten Codes zu erhalten, aktivieren Sie diese Option erneut (anscheinend müssen Sie auch Ihr Storyboard erneut öffnen, damit es wieder funktioniert).

Geben Sie hier die Bildbeschreibung ein

Möglicherweise möchten Sie dem Befehl eine Schlüsselbindung hinzufügen, z. B. Befehlsoptionssteuerung-A, um das Verhalten einfach ein- und auszuschalten. Um eine Tastenkombination in Xcode hinzuzufügen, berühren Sie Befehlskomma für Einstellungen, wählen Sie die Registerkarte Tastenkombinationen, verwenden Sie die Suchleiste, um den Befehl zu finden, und doppelklicken Sie dann auf den rechten Bereich, um den gewünschten Tastenanschlag hinzuzufügen.

Ansatz "Lass es aus"

Alternativ können Sie "Ansichten automatisch aktualisieren" deaktivieren und niemals aktivieren .

Machen Sie einen bequemen Tastendruck für "Alle Ansichten aktualisieren" , sagen Sie Befehl-Option-Umschalt-R

Geben Sie hier die Bildbeschreibung ein

Berühren Sie während der Arbeit von Zeit zu Zeit oder nach Bedarf Befehl-Option-Umschalt-R. Es ist im Allgemeinen nur erforderlich, Befehl-Option-Umschalt-R zu berühren, während Sie am Storyboard arbeiten.

MrTJ
quelle
10
Ich
bin
1
Xcode 7.3 erstellt ständig ein Projekt, wenn im aktiven Editor das Storyboard geöffnet ist. Zum Glück hat diese Antwort mein Problem gelöst. Apple beeindruckt mich immer wieder ...
Oleksii Taran
24
Xcode Version 8.2.1 (8C1002) Problem behoben. Als ich diese Antwort fand und sie mein Problem löste, konnte ich meine Tränen nicht aufhalten. Ich verbrachte 2 Tage im Albtraum, abgeleitete Daten zu löschen, das Projekt zu bereinigen und alle Pods neu zu installieren. (Ich denke, es ist Zeit für Apfel, geben Sie Jetbrains die gesamte Entwicklung der IDE. Welchen Apfel es macht, ist nur eine Scheiße! Danke!
Korgx9
2
Vielen Dank, xcode baut weiter und macht mich wirklich wütend.
Chauyan
8
Diese Lösung funktioniert auch mit Xcode 9. Deaktivieren Sie "Ansichten automatisch aktualisieren" im Storyboard und keine ständige Neuerstellung mehr. Ich danke dir sehr!
PL
7

Ich hatte dieses Problem und die akzeptierte Antwort funktionierte bei mir nicht.

Das Problem war, dass ich das Storyboard in XCode immer in einem eigenen Tab geöffnet habe, damit ich schnell darauf zugreifen kann.

Die einzige Möglichkeit, dies zu beheben, bestand darin, entweder diese Registerkarte zu schließen oder eine andere Datei (wie eine normale Codedatei) auszuwählen und dann XCode zu schließen und erneut zu öffnen. Danach wurde es nicht mehr bei jedem Tastendruck neu aufgebaut.

Seien Sie jedoch gewarnt, wenn Sie das Storyboard öffnen müssen, um Änderungen vorzunehmen, kann dieses Problem manchmal erneut auftreten und ich muss den obigen Vorgang wiederholen.

Ich kann es kaum erwarten, bis Apple das Problem behebt, da es in der Tat sehr frustrierend ist!

(ノ ಠ 益 ಠ) ノ 彡 ┻━┻

Nick Kirsten
quelle