De nombreuses classes dans Cocoa/Cocoa Touch ont le préfixe NS. Qu'est-ce que cela signifie ?
...ou peut-être l'héritage NeXT/Sun (Sun était un participant du consortium OpenStep)
De nombreuses classes dans Cocoa/Cocoa Touch ont le préfixe NS. Qu'est-ce que cela signifie ?
Le code original des frameworks Cocoa provient de l'application NeXTSTEP Foundation et AppKit (ces noms sont toujours utilisés par les frameworks Cocoa d'Apple), et les ingénieurs de NextStep ont choisi de préfixer leurs symboles par NS.
L'Objective-C étant une extension du C et ne disposant donc pas d'espaces de noms comme en C++, les symboles doivent être préfixés par un préfixe unique afin qu'ils n'entrent pas en collision. Ceci est particulièrement important pour les symboles définis dans un framework.
Si vous écrivez une application, de telle sorte que votre code ne soit susceptible d'utiliser que vos symboles, vous n'avez pas à vous soucier de cela. Mais si vous écrivez un framework ou une bibliothèque destinés à être utilisés par d'autres, vous devez également faire précéder vos symboles d'un préfixe unique. CocoaDev a une page où de nombreux développeurs de la communauté Cocoa ont listé leurs préfixes "choisis". Vous pouvez également trouver cette discussion sur le SO utile.
Oui, bien sûr. Tout est très bien expliqué dans les autres réponses, c'est pourquoi je n'ai pas pris la peine de copier ces informations dans la mienne. Désolé si cela offense quelqu'un - cela ne me dérange pas que la réponse acceptée soit remplacée par l'une des autres (si c'est possible - je ne l'ai jamais vérifié).
N eXT S TEP ou N eXTSTEP/ S Cela dépend de la personne à qui vous demandez.
Sun a eu un investissement assez important dans OpenStep pendant un certain temps. Avant que Sun n'entre en scène, la plupart des éléments de la fondation, même s'ils n'étaient pas connus sous le nom de fondation à l'époque, étaient précédés du préfixe NX pour N e X T, et quelque temps avant que Sun n'entre en scène, tout a été renommé en NS . Le site S ne représentait probablement pas Sun à l'époque, mais après que Sun soit intervenu, le consensus général était qu'il représentait Sun pour honorer son engagement.
J'avais en fait une référence pour ça mais je ne la trouve pas maintenant. Je mettrai à jour l'article si/quand je la retrouverai.
J'ai entendu la même histoire de la part d'une source très fiable ; je suis presque sûr que c'est la réponse la plus précise ici.
J'ai trouvé une référence : cocoabuilder.com/archive/cocoa/136618-qu'est-ce-qu'un-ns-signature.html
C'est l'héritage de NextStep (= NS). NeXT était la société informatique que Steve Jobs a créée après avoir quitté Apple en 1985, et NextStep était son système d'exploitation (basé sur UNIX) ainsi que le langage Obj-C et son moteur d'exécution. Avec ses bibliothèques et ses outils, NextStep a ensuite été renommé OpenStep (qui était également le nom d'une API développée par NeXT en collaboration avec Sun), qui est à son tour devenu Cocoa.
Ces différents noms sont en fait assez déroutants (surtout que certains des noms ne diffèrent que par les caractères en majuscules ou en minuscules ), essayez ceci pour une explication :
Extrait des documents de développement d'Apple :
Note historique : Si vous vous demandez pourquoi tant de classes que vous rencontrez ont un préfixe NS, c'est à cause de l'histoire passée de Cocoa et Cocoa Touch. Cocoa a commencé sa vie en tant que cadres collectés utilisés pour créer des applications pour le système d'exploitation NeXTStep. Lorsqu'Apple a racheté NeXT en 1996, une grande partie de NeXTStep a été intégrée à OS X, y compris les noms de classes existants. Cocoa Touch a été introduit comme l'équivalent iOS de Cocoa ; certaines classes sont disponibles à la fois dans Cocoa et dans Cocoa Touch, mais il existe également un grand nombre de classes uniques à chaque plate-forme. Les préfixes à deux lettres comme NS et UI (pour les éléments de l'interface utilisateur sur iOS) sont réservés à l'usage d'Apple.
Fuente: Programmation avec Objective-C
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Je préfère croire que cela signifie "espace de noms".