Nom des constantes locales en Objective-C
colas_
Membre
Bonjour ! (ou re ;-)
Quand dans une classe (dans le .m) je crée une constante
CGFloat const myConst = 5 ;
et que cette constante n'est pas exposée dans le .h, est-ce qu'il vaut mieux que je lui ajoute un préfixe (mon trigramme, plus éventuellement quelques lettre liées à la classe) ?
C'est assez dangereux car dans des classes graphiques, on peut imaginer qu'il va y avoir pas mal de constantes width, etc.
J'ai l'impression que c'est le cas et c'est chiant (pour ça, swift est bien !)
Quelles sont vos pratiques ?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
La convention des constantes ( conventions Apple) suit celle des nom de fonctions :
1. ça commende par le même préfixe que les classes.
2. La première lettre après le prefix est en majuscule.
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.pdf
En résumé :
1) Pour les constantes publiques (visibles par d'autres classes) :
- déclarées dans le .h avec le mot clé "extern" (extern NSString* const MyClassBlablaKey)
- définies dans le .m (NSString* const MyClassBlablaKey = @Youhou)
- préfixées avec le nom de la classe à laquelle ils sont liés (MyClassXXX)
---> en bref, comme le fait Apple (exemple "UIApplicationDidFinishLaunchingNotification", etc), et comme c'est expliqué dans les Coding Guidelines Apple
2) Pour les constantes privées (connues que du fichier .m)
- déclarées et définies dans le .m(rien dans le .h)
- utilisation du mot clé "static" (static NSString* const kMyClass = @Youhou)
- pas besoin de les préfixer avec un nom de classe, grâce au "static" justement. Mais par convention et pour la lisibilité, préfixer le nom de "k" par exemple (kMyConstant), ou alors mettre des noms tout en majuscules (MY_CONSTANT) pour clairement indiquer que c'est une constante
Pour plus de détails, voir mes autres messages
C'est le static qui me manquait !!
Du coup est-ce que ça marche aussi pour les enum ?
Merci !