Flux de travail pour créer des groupes Xcode en tant que dossiers de système de fichiers
j'aime organiser mes classes en groupes, dans le volet du projet navigator Xcode 4. J'utilise également la version GIT via le terminal, qui fonctionne mieux pour moi que L'intégration Xcode 4. Pour moi, cela a le plus de sens lorsque les groupes que je crée dans Xcode correspondent à des dossiers réels sur mon système de fichiers.
cependant, Xcode ne semble pas se soucier de l'endroit où un fichier (par exemple Objective-C.h./m file) est sur le système de fichiers, et chaque fois que vous ajoutez un groupe ( Option+Command+N
) c'est purement cosmétiques, pour tous les fichiers que vous y partagent le même emplacement sur votre disque dur que le reste.
La chose étrange est que si vous créez d'abord un dossier sur votre disque dur, puis faites-le glisser vers Xcode, vous avez créé un groupe avec son propre emplacement sur votre système de fichiers. Chaque fichier que vous créez dans il sera créé dans le dossier sur le disque. J'aime ça, mais J'aimerais encore plus que Xcode fasse ça pour moi au Option+Command+N
. Le flux de travail de passer à Finder pour chaque groupe que vous voulez créer et le ramener au bon endroit dans votre navigateur de projet est tout simplement stupide.
on dirait quelque chose qu'un réglage pourrait réparer, mais je ne le trouve pas! Est-il un meilleur moyen?
mise à jour: en faisant glisser un dossier vers Xcode, vous obtiendrez une fenêtre de dialogue où vous pouvez choisir"référence du dossier". Cela semble prometteur, mais mon Xcode 4 n'accepte pas les fichiers qu'il contient comme classes et garde il me dit qu'il ne trouve aucun dossier. La réponse se trouve peut-être quelque part, mais je ne la trouve toujours pas.
une autre mise à jour: j'ai changé mon environnement d'éditeur principal de Xcode à AppCode. Ce dernier supporte en fait la création de dossiers pour soutenir les groupes de projet, tout en maintenant une compatibilité à 100% avec Xcode. Ces types de L'application savent ce qu'ils font.
3 réponses
UPDATE
ce qui suit décrit Xcode 9 et plus tard.
commençant par Xcode 9, Xcode peut créer automatiquement un dossier système de fichiers lorsque vous créez un groupe dans votre projet.
lorsque vous faites un clic droit (ou un clic de contrôle) dans le navigateur du projet, le menu contextuel inclura un élément de menu "Nouveau groupe" et soit a "nouveau groupe avec dossier" élément de menu ou a "nouveau groupe sans dossier " élément de menu.
-
si Xcode propose "New Group" et "New Group with Folder", alors "New Group" crée un groupe sans dossier.
-
si Xcode propose "New Group" et "New Group without Folder", alors "New Group" crée un groupe avec un dossier.
en d'autres termes, "nouveau groupe" fait toujours le contraire de l'autre (explicite) élément de menu, avec quant à la création du dossier.
Si vous renommez un groupe, et ce groupe a un dossier avec le même nom, Xcode 9 renomme le dossier.
dans Xcode 9, Si vous faites glisser un fichier d'un groupe à un autre, et que les groupes ont des dossiers différents, Xcode 9 déplace le fichier dans le dossier du nouveau groupe, que le dossier du nouveau groupe ait ou non le même nom que le groupe.
Si vous ne pas veulent ce comportement dans Xcode 9, Vous pouvez définir un paramètre non documenté à partir de la ligne de commande:
defaults write com.apple.dt.Xcode IDEDisableStructureEditingCoordinator -bool YES
Impossible de déduire des détails sur "Nouveau groupe avec dossier" et" nouveau groupe sans dossier "
ce n'est pas du tout évident comment Xcode décide s'il faut afficher" Nouveau groupe "et" nouveau groupe avec dossier", ou" nouveau groupe "et"nouveau groupe sans dossier". Un ingénieur Apple à la WWDC 2018 (je pense que son nom était Paul) a regardé le code source Xcode et l'a expliqué pour moi:
- Xcode détermine sur quel groupe vous avez cliqué (ou, si vous n'avez pas cliqué sur un groupe, il détermine quel groupe contient l'élément que vous avez cliqué).
- Xcode regarde les sous-groupes (et dossiers liés) qui sont des enfants du groupe cliqué.
- si la majorité des sous-groupes ont leurs propres dossiers, alors Xcode suppose que vous voulez que le nouveau groupe ait aussi son propre dossier. So Xcode affiche "Nouveau Groupe" (qui va créer un dossier) et "Nouveau Groupe sans Dossier".
- si la majorité des sous-groupes ne pas ont leurs propres dossiers, alors Xcode suppose que vous voulez que le nouveau groupe aussi pas avoir son propre dossier. So Xcode affiche "New Group" (qui va pas créer un dossier) et "New Group with Folder".
- Je ne sais pas comment Xcode brise la cravate si exactement la moitié de les sous-groupes ont leurs propres dossiers, et je n'ai pas envie de le tester maintenant...
- si le groupe cliqué n'a pas de sous-groupes, Xcode décide de ce qu'il faut afficher en se basant sur le fait que le groupe cliqué possède lui-même son propre dossier.
fondamentalement, Xcode essaie de deviner si votre nouveau groupe devrait avoir son propre dossier basé sur si ses futurs frères et sœurs ont leurs propres dossiers.
ORIGINAL
You peut créer un nouveau groupe, avec son propre dossier, directement dans Xcode, mais ce n'est pas du tout évident.
au lieu de choisir"nouveau groupe", choisissez "Ajouter des fichiers à"
cela ne vous économise pas beaucoup si vous avez besoin de déplacer des fichiers existants dans le nouveau groupe, parce que Xcode ne le fera toujours pas.
mais il enregistre quelques pas si vous créez un nouveau groupe pour contenir de nouveaux fichiers.
regardez la réponse d'andyvn22 ici
pour paraphraser:
- Xcode 3 : chaque fois que vous créez un groupe dans Xcode, obtenez immédiatement des informations sur elle, et notez le "Chemin:" juste en dessous de son nom. Cliquer "Choisir..."et réglez-le dans un nouveau dossier avec le même nom.
- Xcode 4 : lorsque vous créez un groupe dans Xcode, sélectionnez immédiatement et ouvrir la barre latérale droite. Notez le "Chemin:" juste au-dessous de son nom. Cliquez sur l'icône à côté de "Rien" (ce qui est que, d'un fichier dans une fenêtre?) et mettez-le dans un nouveau dossier avec le même nom.
, Alors vous aurez besoin de déplacer tous les fichiers existants sur le disque vers le nouveau dossier manuellement.
vient d'essayer cela dans mon projet Xcode4, fonctionne comme un charme.