7
votes

Création de sous-groupes dans les modèles Xcode 4

Bien qu'il y ait beaucoup de documentation et d'exemple pour créer des modèles dans Xcode 3, la conversion des modèles Xcode4 est tout à fait un cauchemar ...

Tout d'abord ici est ce que j'ai trouvé: p>

  • Borealkiss A> fournit un bon tutoriel pour les staters li>
  • Cocos2D a quelques exemples très bons pour faire vos modèles plus "évolué" li> ul>

    mais tous ne parviennent pas à répondre à cette question de l'exemple: p>

    Comment peut-on créer des dossiers d'initiés d'autres dossiers forts>? P>

    Par exemple Si vous souhaitez avoir des fichiers à l'intérieur d'un groupe, vous devez écrire: P>

    <key>Definitions</key>
    <dict>
        <key>File1.h</key>
        <dict>
            <key>Group</key>
            <string>Group1</string>
            <key>Path</key>
            <string>File1.h</string>
            <key>TargetIndices</key>
            <array/>
        </dict>
        <key>File1.m</key>
        <dict>
            <key>Group</key>
            <string>Group1</string>
            <key>Path</key>
            <string>File1.m</string>
        </dict>
    </dict>
    
    <key>Nodes</key>
    <array>
        <string>File1.h</string>
        <string>File1.m</string>
    </array>
    


0 commentaires

3 Réponses :


1
votes

J'ai eu du mal avec celui-ci moi aussi. En tant que solution de contournement, j'ai créé et ajouté un dossier dans mon emplacement TemplateInfo.Plist (dans votre cas devrait être dossier nommé Groupe1). La mise en page des dossiers (sous-dossiers et fichiers) sont identiques à ceux que je veux qu'ils soient dans mon arborescence source de projet (GROUPER1 'GROUP1' a le sous-dossier 'Group2', le dossier 'Group2' dispose de fichiers fichier1.h et fichier1.m, etc.). Ensuite, j'ajoute simplement le dossier racine (groupe1) dans mon fichier templateinfo.plist en le définissant dans la section de définition et en l'ajoutant à la section Nœuds comme ceci:

<key>Definitions</key>
<dict>
<key>Group1/</key>
<dict>
<key>Path</key>
<string>Group1/</string>
<key>TargetIndices</key>
<array/>
</dict>

<key>Nodes</key>
<array>
<string>Group1</string>
</array>


3 commentaires

C'est une solution intéressante mais elle ne semble pas fonctionner ou peut-être que je ne le fais pas correctement. Comment définissez-vous les fichiers à l'intérieur du groupe1 alors? Parce que cela me laisse, nous un comportement étrange où chaque sous-dossier est répliqué de groupe récursifément1 => (Groupe2 => (Groupe1 => Groupe2)) Type de choses


Eh bien, il n'est pas nécessaire de définir les fichiers en groupe2 car ils sont des fichiers Xcode complets. Au lieu de les définir dans la templateinfo.plist, je crée simplement de nouveaux fichiers Xcode (comme lors de la création d'un fichier dans certains projets) et j'écris les en-têtes, les méthodes, etc. dans le fichier lui-même. Ensuite, je les copie au sous-dossier de groupe2 dans mon emplacement de modèle. Je pense que l'autre problème que vous avez est parce que vous définissez probablement, puis ajoutez que la Groupe2 dans la section Nœuds du gabarit également. Une fois que vous avez fait cela pour le groupe1, il n'est pas nécessaire de faire la même chose pour ses sous-contenus car ils seront automatiquement ajoutés.


Denicija Merci beaucoup mais cela n'a pas fonctionné avec ma version de Xcode 4 (construction 4A304a). Quand j'ai ajouté un groupe comme vous avez mentionné, j'ai ajouté avoir un comportement étrange (les dossiers s'ajoutaient de manière récursive)



20
votes

J'ai essayé plusieurs fois Modifier le templateinfo.plist et j'ai également essayé de créer un sous-groupe et de mettre des fichiers entre eux. Enfin, j'ai trouvé la solution:

section de définition: xxx

dans la section du nœud: xxx

le code ci-dessus créera des groupes parents et enfants. et le principal.h est dans l'enfant xxx


5 commentaires

petit copain merci !! Votre réponse était claire et résolue de nombreuses heures de recherche et de peaufinage! J'ai pris la liberté pour modifier légèrement votre réponse pour montrer comment le faire fonctionner pour plusieurs parents


Vous êtes bienvenue APOUCHE. avez-vous du succès pour inclure la référence de dossier du modèle de projet ?? Veuillez regarder ma question à propos de cette question Lien


Y a-t-il plus que je dois faire pour créer un groupe? Utilisation de votre exemple tel qu'il est, je ne parviens pas à créer un groupe pour Main.h


@ Little-Buddy, pouvez-vous expliquer où les définitions et les nœuds doivent-ils figurer dans le fichier XML pour qu'ils fonctionnent? J'ai un XML avec Options qui détient les fichiers, alors où devraient-ils être exactement? Merci.


Je comprends que c'est pour un modèle de projet, une idée s'il est possible de faire la même chose pour un modèle de fichier textsubstitutionfiletemplatekind ?



1
votes

 Entrez la description de l'image ici

pour toute personne qui a besoin d'aide, ceci est sur Xcode 12.4, il s'agit d'un modèle de projet. P>

                        <key>Nodes</key>
                    <array>
                        <string>ViewController.swift:comments</string>
                        <string>ViewController.swift:imports:importCocoa</string>
                        <string>ViewController.swift:implementation(___FILEBASENAME___: UIViewController)</string>
                        <string>ViewController.swift:implementation:methods:viewDidLoad(override func viewDidLoad(\))</string>
                        <string>ViewController.swift:implementation:methods:viewDidLoad:super</string>
                        <string>Info.plist:UIMainStoryboardFile</string>
                        <string>Info.plist:UIApplicationSceneManifest:UISceneStoryboardFile</string>
                        <string>Base.lproj/Main.storyboard</string>
                        <string>Some/MainCoordinator.swift</string>
                        <string>Some/Other/TestClass.swift</string>
                    </array>
                    <key>Definitions</key>
                    <dict>
                        <key>Base.lproj/Main.storyboard</key>
                        <dict>
                            <key>Path</key>
                            <string>Main.storyboard</string>
                            <key>SortOrder</key>
                            <integer>98</integer>
                        </dict>
                        <key>Info.plist:UIMainStoryboardFile</key>
                        <string>&lt;key&gt;UIMainStoryboardFile&lt;/key&gt;
                            &lt;string&gt;Main&lt;/string&gt;
                        </string>
                        <key>Some/MainCoordinator.swift</key>
                        <dict>
                            <key>Group</key>
                            <array>
                                <string>Some</string>
                            </array>
                            <key>Path</key>
                            <string>MainCoordinator.swift</string>
                        </dict>
                        <key>Some/Other/TestClass.swift</key>
                        <dict>
                            <key>Group</key>
                            <array>
                                <string>Some</string>
                                <string>Other</string>
                            </array>
                            <key>Path</key>
                            <string>TestClass.swift</string>
                        </dict>
                    </dict>


0 commentaires