Xcode continue de créer un storyboard après chaque frappe

145

Mon projet Xcode utilisant un storyboard entré dans un état très étrange récemment: Xcode continue à construire l'ensemble du projet et notamment le storyboard après chaque pression de touche . Je n'ai trouvé aucune raison à ce comportement ni dans mon projet qui diffère tous les fichiers intéressants (storyboard et projet) ni un paramètre dans Xcode (peut-être que je ne pouvais tout simplement pas le trouver?) Inutile de dire que cette "fonctionnalité" rend le travail sur mon projet presque impossible puisque le CPU s'occupe constamment de reconstruire le storyboard lorsque je tape un nouveau code. Quelqu'un a vu ça?

MrTJ
la source

Réponses:

415

Cela est dû aux IB_DESIGNABLEdéfinitions des fichiers d'en-tête source. Cela pose probablement problème uniquement si le fichier d'en-tête contenant IB_DESIGNABLEest inclus (même implicitement) dans le fichier source que vous éditez actuellement.

Je n'ai pas trouvé de solution définitive pour désactiver IB_DESIGNABLEet ainsi compiler le storyboard et les fichiers source en continu. J'apprécierais un drapeau Xcode pour le désactiver temporairement. J'ai aussi essayé autour de la IB_DESIGNABLEavec des #ifdefmacros , mais ils sont considérés , même si les #ifdefévalue à false. Commenter un par un IB_DESIGNABLEaide mais ce n'est pas une solution réalisable avec de nombreux IB_DESIGNABLEs.

Mettre à jour

J'ai finalement trouvé un moyen rapide d'éviter ce comportement ennuyeux. Après avoir ouvert le storyboard dans la fenêtre active, désactivez "Actualiser automatiquement les vues" dans le menu Editeur. Cela arrêtera de mettre à jour les vues dans l'éditeur de storyboard qui utilisent votre code personnalisé et accélérera ainsi considérablement votre développement. Lorsque vous avez à nouveau besoin de la compilation juste à temps pour avoir un aperçu visuel de votre code personnalisé, activez à nouveau cette option (il semble que vous deviez également rouvrir votre storyboard pour le faire fonctionner à nouveau).

entrez la description de l'image ici

Vous souhaiterez peut-être ajouter une liaison de clé à la commande, telle que commande-option-contrôle-A, pour activer / désactiver facilement le comportement. Pour ajouter une liaison de touches dans Xcode, appuyez sur commande-virgule pour les préférences, choisissez l'onglet Liaisons de touches, utilisez la barre de recherche pour trouver la commande, puis double-cliquez sur la zone de droite pour ajouter la frappe souhaitée.

Approche "Laissez tomber"

Vous pouvez également désactiver l'option "Actualiser automatiquement les vues" et ne jamais l'activer .

Effectuez une frappe pratique pour "Actualiser toutes les vues" , dites commande-option-shift-R

entrez la description de l'image ici

Pendant que vous travaillez, appuyez simplement sur commande-option-shift-R de temps en temps, ou au besoin. Il est généralement nécessaire de toucher commande-option-shift-R pendant que vous travaillez sur le storyboard.

MrTJ
la source
10
Je ne sais pas comment il a été activé, mais la désactivation de "Actualiser automatiquement les vues" a résolu mon problème
MandisaW
1
Xcode 7.3 construit constamment un projet lorsque l'éditeur actif a ouvert le storyboard. Heureusement, cette réponse a résolu mon problème. Apple ne cesse de m'impressionner ...
Oleksii Taran
24
Problème de Xcode version 8.2.1 (8C1002) résolu. Quand j'ai trouvé cette réponse et que cela a résolu mon problème, je n'ai pas pu arrêter mes larmes. J'ai passé 2 jours dans un cauchemar à supprimer des données dérivées, à nettoyer un projet, à réinstaller tous les pods. (Je pense qu'il est temps pour Apple, donnez tout le développement de l'IDE à Jetbrains. Ce que Apple fait c'est juste une merde! Merci!
korgx9
2
Merci beaucoup, xcode continue de se construire me rend vraiment contrarié.
Chauyan
8
Cette solution fonctionne également sur Xcode 9. Désactivez "Actualiser automatiquement les vues" dans Storyboard, et plus de reconstruction constante. Merci beaucoup!
PL
7

J'ai eu ce problème et la réponse acceptée n'a pas fonctionné pour moi.

Le problème que j'ai eu était que je gardais toujours le storyboard ouvert dans son propre onglet dans XCode afin que je puisse y accéder rapidement.

La seule façon de résoudre ce problème était de fermer cet onglet ou de sélectionner un fichier différent (comme un fichier de code normal), puis de fermer et de rouvrir XCode. Par la suite, il ne reconstruisait plus à chaque frappe.

Soyez averti cependant si vous devez ouvrir le storyboard pour apporter des modifications, ce problème peut parfois réapparaître et je devrai répéter le processus ci-dessus.

Je ne peux pas attendre qu'Apple corrige cela car c'est vraiment très frustrant!

(ノ ಠ 益 ಠ) ノ 彡 ┻━┻

Nick Kirsten
la source