2010-02-13 3 views

Répondre

2

Vous importez seulement les choses dont vous avez besoin, et @class fait quelque chose de similaire à #import - il fait savoir au compilateur qu'un type existe. Alors pourquoi diriez-vous au délégué de l'application à propos d'une classe qu'il ne verra jamais?

La différence est:

@class dira seulement la classe existe, rien de plus.

#import indique au code quels messages la classe accepte ou toute autre chose déclarée par le fichier d'en-tête. Vous l'utilisez donc lorsque le code doit réellement envoyer des messages à un objet. C'est pourquoi un modèle très général consiste à utiliser @class dans l'en-tête et # import dans le fichier d'implémentation. Parfois, vous avez besoin d'importer dans l'en-tête, encore une fois si vous devez savoir quelque chose de plus que "cette classe existe".

0

Réponse courte: Non Voir cette question: @class vs. #import

+0

Salut Ben! Vous êtes tellement accro à SO! ;) –

+0

Je pouvais quitter n'importe quand. –

3

@class est la même que celle d'une classe déclaration anticipée en C++. Vous pouvez simplement #importer le fichier d'en-tête de chaque contrôleur de vue, mais il est parfois plus simple de faire des déclarations directes (@class) dans le fichier .h et de ne faire que #import dans le fichier .m de votre AppDelegate.