S'il vous plaît expliquer vos réponses comme je me suis éloigné de ne pas avoir à faire cela jusqu'à présent.Ai-je besoin d'une déclaration '@class' dans mon fichier AppDelegate.h pour chaque contrôleur de vue de mon projet?
Merci
S'il vous plaît expliquer vos réponses comme je me suis éloigné de ne pas avoir à faire cela jusqu'à présent.Ai-je besoin d'une déclaration '@class' dans mon fichier AppDelegate.h pour chaque contrôleur de vue de mon projet?
Merci
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".
Réponse courte: Non Voir cette question: @class vs. #import
@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.
Salut Ben! Vous êtes tellement accro à SO! ;) –
Je pouvais quitter n'importe quand. –