¿Qué significa el prefijo NS?

votos
501

Muchas clases en Cocoa / Cocoa Touch tienen el prefijo NS. Qué significa eso?

Publicado el 23/01/2009 a las 18:22
fuente por usuario
En otros idiomas...                            


11 respuestas

votos
736

El código original para los frameworks Cocoa provino de las bibliotecas NeXTSTEP Foundation y AppKit (esos nombres todavía son utilizados por los frameworks Cocoa de Apple), y los ingenieros de NextStep eligen prefijar sus símbolos con NS.

Como Objective-C es una extensión de C y, por lo tanto, no tiene espacios de nombres como en C ++, los símbolos deben ir precedidos de un prefijo único para que no colisionen. Esto es particularmente importante para los símbolos definidos en un marco.

Si está escribiendo una aplicación, de modo que es probable que su código solo use sus símbolos, no debe preocuparse por esto. Pero si está escribiendo un marco o una biblioteca para el uso de los demás, también debe ponerle un prefijo único a sus símbolos. CocoaDev tiene una página donde muchos desarrolladores en la comunidad de Cocoa han enumerado sus prefijos "elegidos". También puede encontrar esta discusión SO útil.

Respondida el 23/01/2009 a las 18:52
fuente por usuario

votos
390

Es del patrimonio de NeXTSTEP .

Respondida el 23/01/2009 a las 18:24
fuente por usuario

votos
140

N eXT S TEP o N eXTSTEP / S un depende de a quién le pregunte.

Sun tuvo una inversión bastante grande en OpenStep por un tiempo. Antes de que Sun entrara en escena, la mayoría de las cosas en la base, aunque no se conocía como la base en ese momento, tenían el prefijo NX , para N e X T, y en algún momento justo antes de que Sun entrara en escena, todo cambió a NS . Lo más probable es que la S no significase Sun entonces, pero después de que Sun intervino en el consenso general fue que Sun defendió su participación.

De hecho, tenía una referencia para esto, pero no puedo encontrarlo ahora. Actualizaré la publicación si / cuando la encuentro nuevamente.

Respondida el 23/01/2009 a las 19:03
fuente por usuario

votos
50

Es el patrimonio NextStep (= NS). NeXT fue la empresa de informática que formó Steve Jobs después de abandonar Apple en 1985, y NextStep era su sistema operativo (basado en UNIX) junto con el lenguaje Obj-C y el tiempo de ejecución. Junto con sus bibliotecas y herramientas, NextStep pasó a llamarse OpenStep (que también era el nombre en una API que NeXT desarrolló junto con Sun), que luego se convirtió en Cocoa.

Estos nombres diferentes en realidad son bastante confusos (especialmente porque algunos de los nombres difieren solo en qué caracteres son mayúsculas o minúsculas ...), intente esto para obtener una explicación:

TheMerger OpenstepConfusion

Respondida el 23/01/2009 a las 19:01
fuente por usuario

votos
38

A partir de documentos de desarrollo de Apple:

Nota histórica: Si usted se pregunta por qué tantos de las clases que encuentro tienen un prefijo NS, que es debido a la historia pasada de Cacao y táctil. Cacao empezó su vida como los marcos recogidos se utilizan para construir aplicaciones para el sistema operativo NeXTStep. Cuando Apple compró NeXT en 1996, gran parte de NeXTStep se incorporó en OS X, incluyendo los nombres de las clases existentes. Cocoa Touch fue presentado como el equivalente de IOS de cacao; algunas clases están disponibles en Cocoa y Cocoa Touch, aunque también hay un gran número de clases únicas para cada plataforma. prefijos de dos letras como NS y la interfaz de usuario (para los elementos de interfaz de usuario en IOS) están reservados para su uso por parte de Apple.

Fuente: Programación con Objective-C

Respondida el 19/03/2013 a las 05:53
fuente por usuario

votos
21

De Cocoa_ (API) Wikipedia :

(énfasis añadido)

Clases de cacao comienzan con el acrónimo "NS" (ya sea de pie para la creación de nueva Sol de OpenStep , o por el término de propiedad original para el marco OpenStep, NeXTSTEP ): NSString, NSArray, etc.

Fundación Kit , o más comúnmente simplemente Fundación , aparecieron por primera vez en OpenStep . En Mac OS X, que se basa en la Fundación Core. Fundación es una biblioteca genérica orientada a objetos proporcionando cadena y el valor de la manipulación, los contenedores y la iteración, la computación distribuida, bucles de correr, y otras funciones que no están directamente ligados a la interfaz gráfica de usuario. El prefijo "NS" , que se utiliza para todas las clases y constantes en el marco, proviene de la herencia OPENSTEP de cacao, que fue desarrollado conjuntamente por NeXT y Sun .

Respondida el 27/10/2011 a las 19:08
fuente por usuario

votos
10

Cuando NeXT estaba definiendo la API NextStep (a diferencia del sistema operativo NEXTSTEP), usaron el prefijo NX, como en NXConstantString. Cuando estaban escribiendo la especificación OpenStep con Sun (que no debe confundirse con el sistema operativo OPENSTEP) usaban el prefijo NS, como en NSObject.

Respondida el 24/01/2009 a las 03:32
fuente por usuario

votos
6

Bill Bumgarner aka @bbum, que deberían saber , publicada en la lista de correo CocoaBuilder en 2005 :

Sol entró en la imagen un poco después del prefijo NS había entrado en juego. El prefijo NS se produjo en API públicas durante el paso de NeXTSTEP 3.0 a 4.0 NeXTSTEP (también conocido como OpenStep). Antes de 4,0, un puñado de símbolos utiliza el prefijo NX, pero la mayoría de las clases proporcionadas por las bibliotecas del sistema no se antepone a todos - Lista, Hashtable, Vista, etc ...

Parece que todo el mundo está de acuerdo en que el prefijo NX (para el próximo) se utilizó hasta 1993/1994, y documentos de Apple dice :

La API de OpenStep oficial, publicado en septiembre de 1994, fue el primero en dividir la API entre la Fundación y el Kit de aplicaciones y el primero en utilizar el prefijo “NS”.

Respondida el 05/09/2015 a las 04:04
fuente por usuario

votos
5

Básicamente NS viene de N ext S TEP, el sistema operativo original que se convirtió en Mac OS X cuando Apple adquirió en Siguiente.

Quiero explicar otra cosa y esto es exactamente por qué se necesita.

En C ++ existen espacios de nombres y casi todo vale en std

Esta es la razón que ha std :: string.

Los espacios de nombres se utilizan por lo que es más difícil para usted comete un error y usted puede escribir su propia cadena de clase sin entrar en conflicto con el sistema uno.

Objective-C es superconjunto de C, pero que no incluye espacios de nombres y por la misma razón por encima de todas las clases del sistema se preffixed con NS o algún otro el prefijo extraño.

Esta cosa es la misma forma en todas las clases de DirectX se preffixed con D3D y cómo todas las clases de OpenGL están preffixed con gl .

Esto significa que no se debe utilizar NS para nombrar sus propias clases y cuando vea NS , CA en Core Animation o CG en el núcleo de gráficos que entender que se trata de una llamada a un sistema de marco.

cambios rápidos esta convención, ya que es compatible con los espacios de nombre Swift y los mapas de sus tipos básicos como cuerdas a los equivalentes NS.

Respondida el 08/01/2017 a las 09:27
fuente por usuario

votos
1

Es de la herencia NeXTSTEP

Respondida el 09/06/2019 a las 12:30
fuente por usuario

votos
1

Próximo paso. Es un vestigio de cuando Objective-C fue creado por NeXT escribir nextstep (posteriores OS X) y todas las aplicaciones asociadas, etc. Representan elementos que no son parte del fundamento original de C, por ejemplo, no hay 'cadena' elemento en C, por lo que en Objective-C, que es un elemento de cimentación adicional 'NSString'.

Respondida el 21/06/2017 a las 03:32
fuente por usuario

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