Viele Klassen in Cocoa / Cocoa Touch haben das NS-Präfix. Was bedeutet das?
ios
objective-c
cocoa
cocoa-touch
Martin08
quelle
quelle
Der ursprüngliche Code für die Cocoa-Frameworks stammt von der NeXTSTEP- Bibliothek Foundation und AppKit (diese Namen werden immer noch von Apples Cocoa-Frameworks verwendet), und die NextStep-Ingenieure haben beschlossen, ihren Symbolen NS voranzustellen.
Da Objective-C eine Erweiterung von C ist und daher keine Namespaces wie in C ++ hat, muss Symbolen ein eindeutiges Präfix vorangestellt werden, damit sie nicht kollidieren. Dies ist besonders wichtig für Symbole, die in einem Framework definiert sind.
Wenn Sie eine Anwendung schreiben, sodass Ihr Code wahrscheinlich immer nur Ihre Symbole verwendet, müssen Sie sich darüber keine Gedanken machen. Wenn Sie jedoch ein Framework oder eine Bibliothek für andere Benutzer schreiben, sollten Sie Ihren Symbolen auch ein eindeutiges Präfix voranstellen. CocoaDev hat eine Seite, auf der viele Entwickler in der Cocoa-Community ihre "ausgewählten" Präfixe aufgelistet haben. Möglicherweise finden Sie diese SO-Diskussion auch hilfreich.
quelle
N eXT S TEP oder N eXTSTEP / S un je nachdem, wen Sie fragen.
Sun hatte eine Zeit lang eine ziemlich große Investition in OpenStep. Bevor Sun das Bild betrat, wurde den meisten Dingen in der Stiftung, obwohl sie damals nicht als Stiftung bekannt war, NX für N e X T vorangestellt , und kurz bevor Sun das Bild betrat, wurde alles in NS umbenannt . Das S stand damals höchstwahrscheinlich nicht für Sun, aber nachdem Sun in den allgemeinen Konsens eingetreten war, war es für Sun, ihre Beteiligung zu ehren.
Ich hatte tatsächlich eine Referenz dafür, aber ich kann sie momentan nicht finden. Ich werde den Beitrag aktualisieren, wenn ich ihn wieder finde.
quelle
Es ist das Erbe von NextStep (= NS). NeXT war die Computerfirma, die Steve Jobs gründete, nachdem er Apple 1985 verlassen hatte, und NextStep war das Betriebssystem (UNIX-basiert) zusammen mit der Obj-C-Sprache und der Laufzeit. Zusammen mit seinen Bibliotheken und Tools wurde NextStep später in OpenStep umbenannt (was auch der Name einer API war, die NeXT zusammen mit Sun entwickelte), die später zu Cocoa wurde.
Diese verschiedenen Namen sind eigentlich ziemlich verwirrend (zumal sich einige der Namen nur darin unterscheiden, welche Zeichen in Groß- oder Kleinbuchstaben geschrieben sind). Versuchen Sie dies zur Erklärung:
TheMerger OpenstepConfusion
quelle
Aus Apples Entwicklerdokumenten:
Quelle: Programmierung mit Objective-C
quelle
Aus Cocoa_ (API) Wikipedia :
(Betonung hinzugefügt)
quelle
Als NeXT die NextStep-API definierte (im Gegensatz zum NEXTSTEP-Betriebssystem), wurde das Präfix NX wie in NXConstantString verwendet. Beim Schreiben der OpenStep-Spezifikation mit Sun (nicht zu verwechseln mit dem OPENSTEP-Betriebssystem) wurde das NS-Präfix wie in NSObject verwendet.
quelle
Grundsätzlich stammt NS von N ext S TEP, dem ursprünglichen Betriebssystem, das zu Mac OS X wurde, als Apple Next übernahm.
Ich möchte etwas anderes erklären und deshalb wird es genau benötigt.
In C ++ gibt es Namespaces und fast alles geht in std
Deshalb haben Sie std :: string.
Namespaces werden verwendet, sodass 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 jedoch keine Namespaces. Aus dem gleichen Grund wird allen Systemklassen vor allem NS oder ein anderes seltsames Präfix vorangestellt.
Dies gilt auch für die Präfixierung aller DirectX-Klassen mit D3D und für die Präfixierung aller OpenGL-Klassen mit gl .
Dies bedeutet, dass Sie NS nicht verwenden sollten, um Ihre eigenen Klassen zu benennen. Wenn Sie NS , CA in Core Animation oder CG in Core Graphics sehen, verstehen Sie, dass dies ein Aufruf eines Systemframeworks ist.
Swift ändert diese Konvention, da Swift den Namespace unterstützt und seine Kerntypen wie String den NS-Äquivalenten zuordnet.
quelle
Bill Bumgarner aka @bbum, der es wissen sollte , hat 2005 auf der CocoaBuilder-Mailingliste gepostet :
Es scheint, dass alle zustimmen, dass das Präfix NX (für NeXT) bis 1993/1994 verwendet wurde, und Apples Dokumente sagen :
quelle