Doit on systématiquement faire un import de Foundation.h ou Cocoa.h ?
zenx
Membre
J'aimerais savoir si l'on est obligé d'importer systématiquement Foundation.h ou Cocoa.h dans chaque header de chaque classe que l'on sera amené à développer et rajouter à un projet ?. Autrement dit, lorsqu'on a un projet qui comporte plusieurs classes, et donc plusieurs header, la ligne #import <Cocoa/Cocoa.h> dans un seul fichier .h suffit elle pour que le projet se compile sans erreurs ?
Merci d'avance !
Merci d'avance !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si ta classe ne fait pas appelle au fonction de Cocoa, tu n'est pas obligé de le mettre (par ex : une classe en C pur).
un NSString par-ci, un NSChose par là ... déjà hop t'es obligé d'avoir Cocoa dans tes headers.
En effet à part un fichier en C pur, il reste assez rare de ne pas avoir besoin de ces headers qui contiennent la base des frameworks Apple, donc les fonctions qu'on utilise tellement souvent dans nos programmes sous Xcode que ça en est souvent devenu des standards (il est même parfois difficile de faire la différence entre les choses propres à l'Objective-C et celles apportées par les frameworks Apple )
[tt]
#ifdef __OBJC__
  #import <Cocoa/Cocoa.h>
#endif
[/tt]
[EDIT]
Je pense que tu veux plutôt parler de main.m (et donc 4 autres fichiers .h et .m) ? ::)
Donc dans ce "common.h" si on l'appelle comme ça tu mets #import <Cocoa/Cocoa.h> mais aussi #import "classe1.h", #import "classe2.h" etc.
Et ensuite dans tes .m tu peux importer "common.h" plutôt que de réimporter toujours la même liste de fichiers ".h"
Si en plus tu précompiles ce header (common.pch que tu rajoutes dans la liste des headers précompilés, ou un truc du genre, j'avoue n'avoir jamais trop fait joujou avec les pch de ce côté) tu pourras en plus y gagner à la compil'.
Cependant dans tout .m il y a au moins un .h qui va dire dans quel fichier se trouvent les déclarations des fonctions/méthodes/messages que tu vas définir... ou appeler. C'est incontournable d'avoir des ".h", et pour ce qui est de "Cocoa.h" vu le nombre de fonctions Cocoa que tu utilises (sans t'en rendre trop compte sans doute) c'est quasi obligé