I.e. Je veux apporter cela dans mon code:
static BOOL MyConstantBool = YES;
3 Réponses :
Si vous souhaitez définir une variable globale, peu importe l'endroit où vous le mettez (à l'intérieur ou à l'extérieur de @Implementatation). Dans ce contexte, Il existe également des variables statiques, qui sont définies dans les fonctions. Ils travaillent comme des variables globales, mais ne sont visibles qu'à partir de la portée de la fonction. P> statique code> signifie que la variable n'est visible que de cette unité de compilation (fichier .m). P>
Si c'est après le bloc code> @Implementatation code>, vous ne pouvez pas l'utiliser dans le bloc code> @Implementatation code> (sauf s'il a été renvoyé ailleurs ailleurs en utilisant extern code>). Voici comment je le fais:
//Constants.h
extern BOOL MyConstantBool;
extern NSString* MyConstantString;
//Constants.m
#import "Constants.h"
BOOL MyConstantBool = YES;
NSString* MyConstantString = @"Hello, world!";
//SomeOtherFile.m
#import "Constants.h"
//you can now use anything declared in Constants.h
Ne peut pas être statique code> et
extern code> en même temps.
Les globaux peuvent aller à peu près où que vous souhaitiez; Je viens de le mettre dans n'importe quel endroit donne un sens stylistiquement. Je préfère voir des globaux près du sommet des fichiers source, personnellement. P>
Bien que vous puissiez mettre la définition dans un fichier d'en-tête, je ne le recommande pas. Mettre toute forme de définition dans un fichier d'en-tête peut entraîner des erreurs de liaison de symboles multiples définies sur la route. Si vous avez besoin de plus d'une unité de compilation pour voir la variable, vous ne pouvez pas le faire statique code> de toute façon - vous devez le définir dans un fichier de mise en œuvre quelque part et utiliser
extern code > Pour le rendre visible parmi divers fichiers sources. P>
Dupliquer? Stackoverflow.com/questions/1662828/... < / a>
@Alex - Pas tout à fait. L'autre était comment les définir. C'est là que les définir.