Est-il utile de préfixer ses classes ?
sisopetron
Membre
Bonjour,
Je me pose la question de l'utilité de préfixer les classes. A la création d'un projet, xcode propose de définir un préfixe pour chaque classe créée. Du coup on se retrouve avec de truc du style XYZAppDelegate.h, XYZViewController etc...
Qu'en pensez-vous ? Cela a-t-il du sens ? Quel est l'intérêt de préfixer ?
Merci de m'éclairer.
siso
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En ObjC, il n'y a qu'un espace de nommage (namespace), le problème est que tu peux créer une classe qui porte le même nom qu'une autre classe dans une autre framework. Il y aura un conflit, le compilateur ne sachant pas de laquelle on parle. C'est pour ça qu'on préfixe. Note que ça ne résout pas tout, puisqu'il est possible que deux personnes utilisent le même préfixe!
Moi, je ne préfixe que les classes qui peuvent être utilisées dans d'autres projets.
Il y a quand même un truc qui m'échappe : les applications étant compilées, le nom des classes disparait au profit d'adresses mémoire non ?
Mais ce n'est pas un problème de conflit des symboles compilés, c'est avant tout que, par exemple, si tu as une classe qui s'appelle Player, tu as pas mal de chance qu'elle existe dans une autre framework.
Ainsi, il existe AVPlayer et GKPlayer ! Si ton module importe à la fois AVFoundation et Game Kit, il faut identifier de quelle classe Player on parle.
Toi aussi, il faut préfixer si tu penses réutiliser ton code.
Oui, mais :
Edit : Bizarrement dans l'éditeur je met en forme mon message en mettant des puces qui ne semblent ensuite pas apparaà®tre correctement... Pb du forum ?
Merci pour ces explications. Je vais donc préfixer mes classes comme conseillé.
Voici un lien de doc aussi, tu trouveras surement des conventions sur les prefix/nommage de classes.
https://developer.apple.com/library/mac/DOCUMENTATION/Cocoa/Conceptual/CodingGuidelines/Articles/NamingBasics.html#//apple_ref/doc/uid/20001281-BBCHBFAH
Prudent si on compte reutiliser du code.
Un peu parano sinon.