Objective-C prend-il en charge les variables de classe?
Je sais qu'il prend en charge automatique des variables, mais ce que sur les variables de classe?
source d'informationauteur Voloda2
Vous devez vous connecter pour publier un commentaire.
Je sais qu'il prend en charge automatique des variables, mais ce que sur les variables de classe?
source d'informationauteur Voloda2
Vous devez vous connecter pour publier un commentaire.
Le langage ne prend pas en charge les variables de classe. Vous mettre en œuvre spécifiques à la classe de l'état global
static
variables dans les unités de compilation de la mise en œuvre.Dans l'en-tête (.h fichier):
Dans la mise en œuvre (.m de fichier):
Utilisation:
ObjC variables de classe sont en bon vieux variables statiques.
Foo.m
:Alternativement, vous pouvez utiliser un C++ anonyme de l'espace de noms si vous utilisez ObjC++:
Foo.mm
:Mais il est un autre motif si vous voulez bénéficier des avantages de propriétés:
Foo.h
:Foo.m
:somewhere.m
:Il peut paraître un peu exagéré, mais c'est une solution intéressante. Vous utilisez les mêmes constructions et de la langue fonctionnalités à la fois les propriétés de l'occurrence et de la "classe" des propriétés. L'atomicité sur demande, les accesseurs cas de besoin, le débogage, les points d'arrêt... l'Héritage même.
Esprits créatifs peuvent trouver d'autres moyens de faire tout cela, je suppose. 🙂 Mais vous êtes assez bien couverts avec ces options.
Mais vous devez fournir des getter et setter
De Xcode 8 notes de version:
Objective-C supporte maintenant les propriétés de la classe, qui interagissent avec Swift type de propriétés. Ils sont déclarées comme: @property (classe) NSString *someStringProperty;. Ils ne sont jamais synthétisés. (23891898)