Che cosa significa il prefisso NS?

voti
501

Molte classi a Cocoa / Cocoa Touch hanno il prefisso NS. Cosa significa?

È pubblicato 23/01/2009 alle 18:22
fonte dall'utente
In altre lingue...                            


11 risposte

voti
736

Il codice originale per i quadri di cacao è venuto dal NeXTSTEP librerie Fondazione e AppKit (quei nomi sono ancora utilizzati dai quadri Cocoa di Apple), e gli ingegneri NextStep ha scelto di anteporre i loro simboli con NS.

Perché Objective-C è un'estensione di C e quindi non ha namespace come in C ++, simboli devono essere preceduti da un prefisso unico modo che non collidono. Ciò è particolarmente importante per i simboli definiti in un quadro.

Se si sta scrivendo un'applicazione, in modo tale che il codice è solo probabile mai di utilizzare i vostri simboli, non dovete preoccuparvi di questo. Ma se si sta scrivendo un quadro o una libreria per l'uso degli altri, si dovrebbe anche prefisso vostri simboli con un prefisso univoco. CocoaDev ha una pagina in cui molti sviluppatori nella comunità di cacao hanno elencato le loro prefissi "eletto". È inoltre possibile trovare questa discussione SO utile.

Risposto il 23/01/2009 a 18:52
fonte dall'utente

voti
390

E 'dal NeXTSTEP patrimonio.

Risposto il 23/01/2009 a 18:24
fonte dall'utente

voti
140

N eXT S TEP o N eXTSTEP / S delle Nazioni Unite a seconda di chi si sta chiedendo.

Sun ha avuto un gran investimento in OpenStep per un po '. Prima di Sun è entrato in scena maggior parte delle cose nella fondazione, anche se non era conosciuto come il fondamento di allora, si è prefisso NX , per N e X T, e qualche volta poco prima che Sun è entrato il tutto è stata rinominata NS . L' S molto probabilmente non ha ostacolato per Sun allora, ma dopo che Sun è intervenuta il consenso generale era che stava per Sun per onorare il loro coinvolgimento.

Io in realtà era un punto di riferimento per questo, ma non riesco a trovare in questo momento. Aggiornerò il post, se / quando mi trovo di nuovo.

Risposto il 23/01/2009 a 19:03
fonte dall'utente

voti
50

E 'il patrimonio NextStep (= NS). NeXT è stata la società di computer che Steve Jobs formato dopo ha smesso di Apple nel 1985, ed è stato NextStep è il sistema operativo (basato su UNIX) insieme con il linguaggio Obj-C e tempo di esecuzione. Insieme con le sue librerie e strumenti, NextStep stato poi ribattezzato OpenStep (che era anche il nome su un'API che NeXT sviluppato in collaborazione con Sole), che a sua volta in seguito divenne cacao.

Questi nomi diversi sono in realtà molto confusa (tanto più che alcuni dei nomi differisce solo in cui i personaggi sono maiuscole o minuscole ..), provate questo per una spiegazione:

TheMerger OpenstepConfusion

Risposto il 23/01/2009 a 19:01
fonte dall'utente

voti
38

Dalla documentazione per sviluppatori di Apple:

Nota storica: Se vi state chiedendo il motivo per cui molte delle classi che si incontrano hanno un prefisso NS, è a causa della storia passata di Cocoa e Cocoa Touch. Cacao cominciato la vita come i quadri raccolti utilizzati per costruire applicazioni per il sistema operativo NeXTStep. Quando Apple acquistò NeXT nel 1996, gran parte di NeXTStep fu incorporato in OS X, tra cui i nomi delle classi esistenti. Cocoa Touch è stato introdotto come l'equivalente iOS di cacao; alcune classi sono disponibili sia in Cocoa e Cocoa Touch, anche se ci sono anche un gran numero di classi uniche per ogni piattaforma. Due lettere prefissi come NS e interfaccia utente (per gli elementi dell'interfaccia utente su iOS) sono riservati per l'utilizzo da parte di Apple.

Fonte: Programmazione con Objective-C

Risposto il 19/03/2013 a 05:53
fonte dall'utente

voti
21

Da Cocoa_ (API) Wikipedia :

(enfasi aggiunta)

Classi Cocoa iniziano con la sigla "NS" (in piedi sia per la creazione di NeXT-Sole di OpenStep , o per il termine proprietario originale per il framework OpenStep, NeXTSTEP ): NSString, NSArray, etc.

Kit Foundation , o più comunemente semplicemente Foundation , prima apparizione in OpenStep . In Mac OS X, si basa sul Core Foundation. Fondazione è una libreria orientata agli oggetti generico fornendo stringa e un valore manipolazione, contenitori e iterazione, calcolo distribuito, fare loop, e altre funzioni che non sono direttamente legati all'interfaccia utente grafica. Il prefisso "NS" , utilizzato per tutte le classi e le costanti del quadro, viene dal patrimonio OPENSTEP di cacao, che è stato sviluppato congiuntamente da NeXT e Sun .

Risposto il 27/10/2011 a 19:08
fonte dall'utente

voti
10

Quando successivo erano definendo l'API NextStep (in contrasto con il sistema operativo NEXTSTEP), hanno usato il prefisso NX, come in NXConstantString. Quando stavano scrivendo le specifiche OpenStep con Sun (da non confondere con il sistema operativo OPENSTEP) hanno usato il prefisso NS, come in NSObject.

Risposto il 24/01/2009 a 03:32
fonte dall'utente

voti
6

Bill Bumgarner aka @bbum, che dovrebbe sapere , pubblicato sul mailing list CocoaBuilder nel 2005 :

Sun è entrato in scena un po 'dopo il prefisso NS era venuto in gioco. Il prefisso NS nata nel API pubbliche durante il passaggio da 3.0 a NeXTSTEP NeXTSTEP 4.0 (noto anche come OpenStep). Prima di 4,0, una manciata di simboli utilizzato il prefisso NX, ma maggior parte delle classi fornite dalle librerie di sistema non sono stati prefisso a tutti - List, Hashtable, Vista, ecc ...

Sembra che tutti sono d'accordo che il NX prefisso (per NeXT) è stato utilizzato fino 1993/1994, e la documentazione di Apple dire :

L'API OpenStep ufficiale, pubblicato nel settembre del 1994, fu il primo a dividere l'API tra la Fondazione e l'Application Kit e il primo ad usare il prefisso “NS”.

Risposto il 05/09/2015 a 04:04
fonte dall'utente

voti
5

Fondamentalmente NS viene da N ext S TEP, il sistema operativo originale che è diventato Mac OS X quando Apple ha acquisito Avanti.

Voglio spiegare qualcosa di diverso e questo è il motivo per cui esattamente ce n'è bisogno.

In C ++ ci sono spazi dei nomi e quasi tutto va in std

Questo è il motivo per cui si è std :: string.

I namespace sono utilizzati in modo che sia più difficile per voi di fare un errore e si può scrivere il proprio stringa di classe senza entrare in conflitto con il sistema uno.

Objective-C è superset del C, ma non include gli spazi dei nomi e per lo stesso motivo di cui sopra tutte le classi di sistema sono preffixed con NS o qualche altro strano preffix.

Questa cosa è lo stesso di come tutte le classi DirectX sono preffixed con D3D e come tutte le classi di OpenGL sono preffixed con gl .

Questo significa che non si dovrebbe usare NS di nominare le proprie classi e quando si vede NS , CA in Core Animation o CG nel core grafico si capisce che si tratta di una chiamata a un quadro di sistema.

modifiche Swift questa convenzione, perché Swift sostiene namespacing e mappe suoi tipi fondamentali come String per gli equivalenti NS.

Risposto il 08/01/2017 a 12:27
fonte dall'utente

voti
1

E 'dal patrimonio NeXTSTEP

Risposto il 09/06/2019 a 12:30
fonte dall'utente

voti
1

Passo successivo. È un residuo quando obiettivo-c è stato creato da NeXT per scrivere nextstep (successivi os x) e tutte le applicazioni associate, ecc Essi rappresentano elementi che non fanno parte del Rinforzo originale C, per esempio, non v'è alcun 'stringa' elemento a C, così nell'obiettivo-c, è un elemento aggiuntivo fondazione 'NSString'.

Risposto il 21/06/2017 a 06:32
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more