659 Stimmen

Was bedeutet das Präfix NS?

Viele Klassen in Cocoa/Cocoa Touch haben das Präfix NS. Was bedeutet das?

3 Stimmen

Ich ziehe es vor zu glauben, dass es "Namespace" bedeutet.

32voto

Daniel Georgiev Punkte 1204

Grundsätzlich NS kommt von N ext S TEP, das ursprüngliche Betriebssystem, das mit der Übernahme von Next durch Apple zu Mac OS X wurde.

Ich möchte noch etwas anderes erklären, und zwar, warum genau das notwendig ist.

In C++ gibt es Namespaces und fast alles geht in std

Aus diesem Grund gibt es std::string.

Es werden Namensräume verwendet, so dass es für Sie schwieriger ist, einen Fehler zu machen, und Sie können Ihre eigene Klassenzeichenfolge schreiben, ohne mit der Systemzeichenfolge in Konflikt zu geraten.

Objective-C ist eine Obermenge von C, enthält aber keine Namespaces und aus demselben Grund sind alle Systemklassen mit NS oder einem anderen seltsamen Präfix versehen.

Das ist dasselbe wie bei allen DirectX-Klassen, die mit dem Präfix D3D und wie alle OpenGL-Klassen mit einem Präfix versehen sind gl .

Das bedeutet, dass Sie nicht verwenden sollten NS um Ihre eigenen Klassen zu benennen, und wenn Sie sehen NS , CA in Kernanimation oder CG in Core Graphics verstehen Sie, dass es sich um einen Aufruf an ein System-Framework handelt.

Swift ändert diese Konvention, da Swift Namespacing unterstützt und seine Kerntypen wie String auf die NS-Äquivalente abbildet.

25voto

chown Punkte 50364

Von Kakao_(API) Wikipedia :

(Hervorhebung hinzugefügt)

Cocoa-Klassen beginnen mit dem Akronym "NS" (steht entweder für die NeXT-Sun Entwicklung von OpenStep oder für die ursprüngliche geschützte Bezeichnung für das OpenStep-Framework, NeXTSTEP ): NSString, NSArray, usw.

Fundament-Kit , oder allgemeiner ausgedrückt Stiftung erstmals erschienen in OpenStep . Unter Mac OS X basiert es auf Core Foundation. Foundation ist eine generische objektorientierte Bibliothek, die Zeichenketten und Werte Manipulation von Strings und Werten, Container und Iteration, verteiltes Rechnen, Run Schleifen und andere Funktionen, die nicht direkt an die grafische Benutzeroberfläche gebunden sind. Benutzeroberfläche gebunden sind. Die Vorsilbe "NS" , die für alle Klassen und Konstanten in verwendet werden, stammt von Das OPENSTEP-Erbe von Cocoa, das gemeinsam von entwickelt von NeXT y Sonne .

0 Stimmen

Wikipedia ist hier falsch. Grundbaukasten erschien zuerst in Enterprise Objects Framework das vor OpenStep entwickelt wurde. Übrigens basierte die NeXT-Version von Foundation angeblich auf einer CoreFoundation-ähnlichen C-API, die aber erst unter Mac OS X als öffentliche Schnittstelle veröffentlicht wurde.

0 Stimmen

@user23743, ich glaube nicht, dass Sie richtig liegen. EOF ist älter als das OPENSTEP-Betriebssystem, aber nicht die OpenStep-API. Die EOF-Dokumentation, auf die Sie direkt verlinkt haben (mit Verweis auf OpenStep)[ cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/ und beide wurden 1994 veröffentlicht.

12voto

Als NeXT die NextStep-API definierte (im Gegensatz zum NEXTSTEP-Betriebssystem), benutzten sie das Präfix NX, wie in NXConstantString. Bei der Erstellung der OpenStep-Spezifikation mit Sun (nicht zu verwechseln mit dem OPENSTEP-Betriebssystem) wurde das Präfix NS verwendet, wie in NSObject.

8voto

Simon Woodside Punkte 6952

Bill Bumgarner aka @bbum, der es wissen muss , veröffentlicht auf der CocoaBuilder Mailingliste im Jahr 2005 :

Sun kam ein wenig später ins Spiel, als die Vorwahl NS ins Spiel kam. Das NS-Präfix kam in öffentlichen APIs während des Übergangs von NeXTSTEP 3.0 zu NeXTSTEP 4.0 (auch bekannt als OpenStep) auf. Vor 4.0 verwendeten eine eine Handvoll von Symbolen das NX-Präfix, aber die meisten Klassen, die von den Systembibliotheken zur Verfügung gestellten Klassen waren überhaupt nicht mit einem Präfix versehen - List, Hashtable, View, etc...

Es scheint, dass sich alle einig sind, dass das Präfix NX (für NeXT) bis 1993/1994 verwendet wurde, und In den Apple-Dokumenten heißt es :

Die offizielle OpenStep-API, die im September 1994 veröffentlicht wurde, war die erste, die die API in Foundation und Application Kit aufteilte und die erste, die das Präfix "NS" verwendete.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X