Vidéo: 5 erreurs de publication à ne pas faire sur l'App Store d'Apple 2025
Pendant le développement de votre application iOS, vous pouvez transférer une référence. Cela se produit lorsque vous faites référence à une classe (disons A) dans une autre classe (disons B) simplement pour déclarer une variable d'instance de la première classe dans la seconde classe. Une façon de le faire est d'inclure le fichier d'interface pour A dans le fichier d'interface pour B.
Cependant, cela peut entraîner des dépendances circulaires si A et B ont des variables membres de la classe de l'autre. Autrement dit, une instance de A a une variable membre qui est une instance de B et vice versa.
Pour contourner ces dépendances circulaires et aussi pour simplifier l'utilisation d'une classe dans une autre, Objective-C fournit ce qu'on appelle une référence forward via une directive @class.
La directive @class définit une référence vers une autre classe. Dans l'interface de PostfixCalculator (présentée ci-après), vous voyez un exemple de référence vers l'avant. La directive @class informe le compilateur que le mot StackOfInterface est le nom d'une classe. Ainsi, lorsque la déclaration de calculatorStack est compilée, le compilateur Objective-C sait que cette déclaration est une déclaration valide et aussi comment allouer de la mémoire pour cela.
Cela fonctionne parce que, quand le compilateur rencontre une déclaration de variable, pour allouer de la mémoire à une variable objet, il faut juste savoir que la variable est (un pointeur vers) un objet de une classe. Le compilateur n'a pas besoin de connaître les détails tels que la façon dont les méthodes de la classe sont définies.
// ------- @interface section ------- @class StackOfInteger; // forward déclaration @interface PostfixCalculator: NSObject {@public NSString * expression; @protected StackOfInteger * calculatorStack;} … Méthodes … -d
Pratiques pour les processus et un ensemble de critères de conception.
