Vidéo: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2025
La déclaration des variables d'instance pour les applications iOS nécessite que chaque instance possède ses propres Ainsi, les variables d'instance sont créées pour chaque instance (en d'autres termes, chaque instance reçoit une copie de ces variables).
Dans la classe PostfixCalculator, les variables d'instance sont
-
expression, qui est (pointeur vers) un objet NSString
-
calculatorStack, qui est (également un pointeur) vers un objet StackOfInteger
Le scope d'une variable définit où il peut être Il existe quatre options:
-
protected: les variables d'instance sont visibles et peuvent être directement référencées (c'est-à-dire utilisées) dans toutes les méthodes d'instance d'une classe et des sous-classes.
protected est la portée par défaut. > private: Ces variables ne sont utilisées que dans la classe qui les a définies
-
public: ces variables sont visibles et peuvent être utilisées ed dans toute autre classe ou méthode.
-
-
Jetez un oeil à un exemple de PostfixCalculator:
@interface PostfixCalculator: NSObject {@public NSString * expression; @private StackOfInteger * calculatorStack;} -d
Ici, l'expression est déclarée comme une variable d'instance publique, alors que calculatorStack est déclaré comme private.
Conservez toutes les variables comme protégées et écrivez des méthodes d'accès pour les variables que vous souhaitez rendre visibles en dehors de la hiérarchie de classes.
-
Pour contrôler encore plus l'accès:
-
Déclarer explicitement les variables comme privées.
-
Fournissez des méthodes d'accès pour les variables que vous souhaitez rendre accessibles en dehors de la classe.
-
Dans la mesure du possible, éloignez-vous des variables d'annotation comme public et package.
Accessoirement, pour accéder à une variable d'instance dans la portée publique, vous utilisez le pointeur vers l'opérateur membre (alias l'opérateur flèche ->). Dites que l'expression de variable dans l'interface PostfixCalculator est déclarée comme suit:
-
@public NSString * expression;
Vous y accédez comme ceci:
myExpression = myCalculator-> expression;
D'autre part, si la variable est déclarée privée (ou par défaut de protected), vous devez utiliser une méthode accessor pour obtenir sa valeur, comme indiqué ici:
NSString * myExpression = [myCalculator getExpression];
Certains compilateurs Objective-C, tels que le compilateur gcc actuel sur Mac, n'appliquent pas encore la portée privée.Au lieu de cela, ils génèrent uniquement un avertissement si vous utilisez une variable déclarée comme privée en dehors de la classe dans laquelle elle est déclarée. L'avertissement est similaire au suivant:
avertissement: instance variable … est @private; Ce sera une erreur difficile à l'avenir.
D'autre part, le compilateur dans Xcode fait la bonne chose et dit: La variable d'instance … est privée.
