2010-04-20 3 views
1

J'ai suivi le tutoriel this pour la mise en place d'une bibliothèque statique avec les classes courantes de 3 projets sur lesquels nous travaillons.Exposer les en-têtes sur la bibliothèque statique de l'iPhone

C'est assez simple, créer un nouveau projet de bibliothèque statique sur xcode, y ajouter le code, changer le rôle des en-têtes de project à public. Le tutoriel dit que je devrais ajouter mon dossier de bibliothèque au header search paths récursivement.

Est-ce la bonne solution? Je veux dire, sur mon projet de bibliothèque, j'ai des fichiers séparés dans des dossiers comme Global/, InfoScreen/, Additions/. J'essayais d'installer un fichier LOKit.h sur le dossier racine, et dans ce fichier #import tout ce que j'ai besoin d'exposer. Donc, sur mon projet hôte, je n'ai pas besoin d'ajouter le dossier de manière récursive au chemin de recherche d'en-tête, et je voudrais juste #import "LOKit.h".

Mais je ne pouvais pas faire fonctionner ceci, le projet hôte ne construira pas se plaindre de toutes les classes que je n'ai pas ajoutées à LOKit.h, même si le projet de bibliothèque se construit. Donc, ma question est, quelle est la droite façon d'exposer les fichiers d'en-tête lorsque je configure un projet Cocoa Touch Static Library sur xCode?

Répondre

1

Je fini par la mise en place d'un LOKit.h sur le dossier racine du projet comme celui-ci:

#import "Global/LOCommon.h" 
#import "Additions/LOAdditions.h" 
#import "View/LOCustomView1.h" 
#import "View/LOCustomView2.h" 

Et sur mon projet d'accueil, je mis la variable de chemin de recherche d'en-tête dans le dossier racine de ma bibliothèque, sans récursivité. Chaque fois que j'en ai besoin, j'importe juste LOKit.h.

J'ai également inclus dans cette bibliothèque des bibliothèques communes (telles que JSON, FBConnect et Reachabillity) partagées entre plusieurs projets. De cette façon, j'ai seulement besoin de mettre à jour ces bibliothèques à un endroit, une fois.

0

Lorsque vous utilisez les bibliothèques statiques, je vais habituellement l'une des deux manières suivantes:

Si j'ai créé moi-même bibliothèque et il est couplé un peu étroitement au projet qui utilise la lib, je crée habituellement une racine source pour la bibliothèque dans les paramètres XCode. Vous pouvez ensuite ajouter la racine source en tant que variable aux chemins d'en-tête de manière récursive. D'autre part, si la bibliothèque n'est pas par moi, ou est maintenue entièrement séparément de mon projet, je copie habituellement une version de la bibliothèque plus les en-têtes appropriés au projet l'utilisant et référence ceux-ci. C'est un peu plus lourd si vous avez besoin de mises à jour constantes, mais ne casse pas votre application si quelque chose change dans la bibliothèque.

+0

Merci, votre première suggestion était à peu près ce que je faisais déjà. Mais je voulais vraiment éviter d'ajouter le dossier dans les chemins de recherche d'en-tête récursifs, donc je peux choisir ce qu'il faut exposer et ce qui ne ferait que compliquer l'utilisateur de la bibliothèque. – leolobato

Questions connexes