Pour le "bien public" de constantes, de vous déclarer comme extern dans votre fichier d'en-tête (.h) et l'initialiser dans votre fichier d'implémentation (.m).
//File.hexternintconst foo;
puis
//File.mintconst foo =42;
Envisager d'utiliser enum si ce n'est pas seulement un, mais plusieurs constantes appartenant ensemble
Objective C classes ne prennent pas en charge les constantes en tant que membres. Vous ne pouvez pas créer une constante de la façon dont vous le souhaitez.
Le plus proche de la façon de déclarer une constante associée à une classe est de définir une méthode de la classe qui le renvoie. Vous pouvez également utiliser extern accéder aux constantes directement. Les deux sont présentés ci dessous:
//headerexternconstint MY_CONSTANT;@interfaceFoo{}+(int) fooConstant;@end//implementationconstint MY_CONSTANT =23;staticconstint FOO_CONST =34;@implementationFoo+(int) fooConstant
{return FOO_CONST;//You could also return 34 directly with no static constant}@end
Un avantage de la méthode de classe de version, c'est qu'il peut être étendu pour fournir des objets constants assez facilement. Vous pouvez utiliser extern objets, à la noisette, vous devez l'initialiser dans une méthode initialize (sauf s'ils sont des chaînes de caractères). Ainsi, vous verrez souvent le motif suivant:
Ajouté un autre morceau que je viens de penser nice. Il pourrait être intéressant de préciser que le modèle que tu as écrit est appelé singleton et est souvent utilisé pour le partage de trucs tous à travers les applications. Un bel exemple de l'iPhone dev est l'AppDelegate classe.
Un moyen simple pour le type de valeur des constantes comme des entiers est d'utiliser le enum hack comme évoqué par unbeli.
//File.henum{SKFoo=1,SKBar=42,};
L'un des avantages de ce rapport à l'aide de extern est que tout est résolu au moment de la compilation, donc il n'y pas de mémoire requise pour stocker les variables.
Une autre méthode consiste à utiliser static const qui est ce qui a été pour remplacer l'enum hack en C/C++.
Une analyse rapide par le biais d'Apple en-têtes montre que l'enum hack méthode semble être la meilleure façon de le faire en Objective-C et je trouve cela plus propre et l'utiliser moi-même.
Aussi, si vous êtes à la création de groupes d'options que vous devriez envisager d'utiliser NS_ENUM pour créer un typesafe constantes.
Pour le "bien public" de constantes, de vous déclarer comme
extern
dans votre fichier d'en-tête (.h) et l'initialiser dans votre fichier d'implémentation (.m).puis
Envisager d'utiliser
enum
si ce n'est pas seulement un, mais plusieurs constantes appartenant ensembletypedef NS_ENUM
?OriginalL'auteur unbeli
Objective C classes ne prennent pas en charge les constantes en tant que membres. Vous ne pouvez pas créer une constante de la façon dont vous le souhaitez.
Le plus proche de la façon de déclarer une constante associée à une classe est de définir une méthode de la classe qui le renvoie. Vous pouvez également utiliser extern accéder aux constantes directement. Les deux sont présentés ci dessous:
Un avantage de la méthode de classe de version, c'est qu'il peut être étendu pour fournir des objets constants assez facilement. Vous pouvez utiliser extern objets, à la noisette, vous devez l'initialiser dans une méthode initialize (sauf s'ils sont des chaînes de caractères). Ainsi, vous verrez souvent le motif suivant:
nice. Il pourrait être intéressant de préciser que le modèle que tu as écrit est appelé singleton et est souvent utilisé pour le partage de trucs tous à travers les applications. Un bel exemple de l'iPhone dev est l'AppDelegate classe.
OriginalL'auteur JeremyP
Un moyen simple pour le type de valeur des constantes comme des entiers est d'utiliser le enum hack comme évoqué par unbeli.
L'un des avantages de ce rapport à l'aide de
extern
est que tout est résolu au moment de la compilation, donc il n'y pas de mémoire requise pour stocker les variables.Une autre méthode consiste à utiliser
static const
qui est ce qui a été pour remplacer l'enum hack en C/C++.Une analyse rapide par le biais d'Apple en-têtes montre que l'enum hack méthode semble être la meilleure façon de le faire en Objective-C et je trouve cela plus propre et l'utiliser moi-même.
Aussi, si vous êtes à la création de groupes d'options que vous devriez envisager d'utiliser
NS_ENUM
pour créer un typesafe constantes.Plus d'infos sur
NS_ENUM
et c'est le cousinNS_OPTIONS
est disponible à NSHipster.OriginalL'auteur Gerry Shaw