46 votes

les variables statiques en objective-c méthodes

Je tiens à préciser que les différentes instances de l'Objective-C d'actions d'une classe de variables statiques qui se produisent à l'intérieur des méthodes, ou si chaque instance a sa propre copie:

- (void) myMethod {
    static int myVar = 0;
}

88voto

Mike Points 639

Statique les habitants sont partagés entre les appels de méthode ET d'instances. Vous pouvez y penser comme à globals qui ne sont visibles qu'à l'intérieur de leurs méthodes:

- (void) showVars {
    int i = 0;
    static int j = 0;
    i++; j++;
    NSLog(@"i = %i ; j = %i", i, j);
}

[...]

[obj1 showVars];
[obj2 showVars];
[obj1 showVars];
[obj2 showVars];

Ci-dessus les appels sur les 2 différentes instances de sortie:

i = 1 ; j = 1
i = 1 ; j = 2
i = 1 ; j = 3
i = 1 ; j = 4

33voto

Carl Norum Points 114072

C'est la même chose comme une variable static en C; les instances se partagent la variable. Si vous souhaitez que chaque instance d'avoir sa propre copie, vous voulez une variable d'instance (déclarée dans l' @interface de l'îlot).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X