2010-10-14 4 views
4

Un projet iPad sur lequel je travaillais a été pléthorique avec un grand nombre de fichiers. L'application est un prototype et nous réfléchissons aux moyens de l'éviter lorsque nous la réécrivons. L'un des membres de notre équipe suggère de diviser tous les composants en projets Xcode distincts qui seront inclus dans un projet maître Xcode.Division d'un projet en plusieurs fichiers de projet Xcode

Est-ce une bonne idée? Quelles sont les raisons, le cas échéant, d'éviter de diviser les fonctionnalités/composants/contrôles en projets Xcode distincts?

Répondre

1

Maintenant, avec Xcode4, vous pouvez créer un espace de travail et y ajouter tous vos projets. Uniquement à des fins de documentation :)

+0

Vous pouvez exécuter des projets à partir d'un espace de travail. Vous avez peut-être fait référence à des projets de documentation (qui peuvent être ajoutés à un espace de travail) lorsque vous dites "uniquement à des fins de documentation". – titaniumdecoy

0

Un projet Xcode peut contenir un nombre illimité de cibles de construction et vous pouvez arbitrairement regrouper les fichiers sources dans des dossiers. Qu'est-ce qui vous fait penser que plusieurs projets sont nécessaires?

+0

Peut-être n'aime-t-il pas voir tous les dossiers et fichiers? – SmallChess

+0

L'idée est d'imposer la séparation des composants. – titaniumdecoy

2

Vous pouvez ajouter un fichier projet secondaire à un fichier de projet principal dans Xcode. Choisissez simplement "Ajouter un fichier" et ajoutez-le. Quand Xcode construira le maître, il construira aussi la filiale si nécessaire.

J'utilise un système similaire. Je casse souvent un projet en sous-projets pour que je puisse me concentrer sur l'encapsulation et l'appliquer. J'écris d'abord le modèle de données, puis j'ajoute le délégué de l'application, puis les éléments spécifiques de l'interface. J'ajoute chaque projet à la suivante à son tour. Cela me permet également de revenir en arrière et de changer les choses sans risque de rupture. Vraiment, une application objective-c correctement conçue devrait être facile à décomposer en projet multiple. Idéalement, tous les composants sont tellement encapsulés qu'ils n'en ont pas besoin d'autres pour sauvegarder le modèle de données.

+0

Comment cela fonctionne-t-il? J'ai essayé d'ajouter un autre projet Xcode à un projet maître Xcode mais lorsque j'ai compilé aucun des fichiers de l'autre projet n'a pu être trouvé. – titaniumdecoy

+0

Ajouter le document de projet externe par référence au lieu de le copier. Les chemins d'accès aux fichiers source des projets sont relatifs à l'emplacement du document de projet lui-même. Si vous utilisez une copie du fichier projet en dehors du répertoire du projet, Xcode ne peut pas localiser les fichiers. – TechZen

2

Nous avons mis une partie du code dans son propre projet, en construisant un framework auquel nous nous lions par rapport à d'autres projets. Il est parfois agaçant de ne pas voir les fichiers d'implémentation du code de framework tout de suite dans un autre projet (par cmd + clic ou cmd + shift + D, ou tout ce que vous faites normalement pour naviguer). Xcode ne vous montrera que l'en-tête, vous devrez ouvrir l'autre projet et y trouver votre fichier manuellement. Pas très grave, mais si vous cherchez souvent le code, cela vous dérangera.

Un vrai problème est que vous modifiez la portée de certaines opérations. Des choses comme "Trouver dans le projet" fonctionneront sur un ensemble de fichiers différent, ce qui pourrait ne pas être ce que vous voulez parfois (essayer de trouver où cette méthode est appelée/clé est utilisée dans tout votre code, ou quelque chose); Eh bien, il reste Finder/find, donc ça pourrait aller. Le refactoring ne l'est pas - tout le renommage ne fait que casser, car il ne changera que le code du projet en cours, mais pas des projets référençant celui-ci. Si vous changez souvent d'interfaces, mieux vaut éviter de diviser le projet. Une bonne chose est que vous obtiendrez moins de conflits sur vos fichiers .xcodeproj (si stockés dans un référentiel partagé) car quelqu'un supprimant un fichier du projet X ne créera pas de conflit avec quelqu'un d'autre ajoutant une cible sur le projet Y , où précédemment le même .xcodeproj (pas exactement sûr que c'est un cas de conflit, mais il y en a certainement).

1

Pour afficher et modifier les fichiers d'implémentation de sous-projet, vous devez ajouter les sous-projets directement dans le projet principal.

1 étape - Glissez et déposez les fichiers de projet .xcode dans le projet principal.

2 étapes - Aller au projet principal TARGETS -> Build Phases. Ajouter une cible de sous-projet dans les dépendances cibles. Vous pouvez également ajouter des fichiers binaires dans Link Binary With Libraries.

3 étapes - Ajouter un chemin de source de sous-projet au chemin de recherche de l'en-tête des projets principaux. Accédez au projet principal -> Paramètres de construction -> Chemins de recherche d'en-tête (par exemple $ (SRCROOT) /../ CoconutKit-master/CoconutKit/Sources)

Questions connexes