Muchas clases en Cocoa / Cocoa Touch tienen el prefijo NS. Qué significa eso?
ios
objective-c
cocoa
cocoa-touch
Martin08
fuente
fuente
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 decidieron 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 tener como prefijo un prefijo único para que no choquen. 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 tiene que preocuparse por esto. Pero si está escribiendo un marco o biblioteca para el uso de otros, también debe anteponer sus símbolos con un prefijo único. CocoaDev tiene una página donde muchos desarrolladores de la comunidad de Cocoa han enumerado sus prefijos "elegidos". También puede encontrar útil esta discusión SO .
fuente
N eXT S TEP o N eXTSTEP / S un dependiendo de a quién le pregunte.
Sun tuvo una inversión bastante grande en OpenStep por un tiempo. Antes de que Sun ingresara a la imagen, la mayoría de las cosas en la base, aunque no se conocía como la base en ese entonces, tenía el prefijo NX , para N e X T, y en algún momento justo antes de que Sun ingresara a la imagen, todo cambió su nombre a NS . Lo más probable es que la S no representara a Sun en ese momento, pero después de que Sun intervino en el consenso general fue que representaba a Sun para honrar su participación.
De hecho, tenía una referencia para esto, pero no puedo encontrarla en este momento. Actualizaré la publicación si / cuando la encuentre de nuevo.
fuente
Es el patrimonio NextStep (= NS). NeXT fue la compañía de computadoras que Steve Jobs formó después de que dejó Apple en 1985, y NextStep fue 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 a su vez más tarde se convirtió en Cocoa.
Estos diferentes nombres son bastante confusos (especialmente porque algunos de los nombres difieren solo en los caracteres en mayúscula o minúscula ...), intente esto para obtener una explicación:
TheMerger OpenstepConfusion
fuente
De los documentos de desarrollador de Apple:
Fuente: Programación con Objective-C
fuente
De Cocoa_ (API) Wikipedia :
(énfasis añadido)
fuente
Cuando NeXT definía la API NextStep (a diferencia del sistema operativo NEXTSTEP), usaban el prefijo NX, como en NXConstantString. Cuando estaban escribiendo la especificación OpenStep con Sun (que no debe confundirse con el sistema operativo OPENSTEP) usaron el prefijo NS, como en NSObject.
fuente
Básicamente, NS proviene de N ext S TEP, el sistema operativo original que se convirtió en Mac OS X cuando Apple adquirió Next.
Quiero explicar algo más y es por eso que se necesita exactamente.
En C ++ hay espacios de nombres y casi todo va en estándar
Por eso tienes std :: string.
Los espacios de nombres se utilizan, por lo que es más difícil cometer un error y puede escribir su propia cadena de clase sin entrar en conflicto con la del sistema.
Objective-C es un superconjunto de C, pero no incluye espacios de nombres y, por la misma razón, sobre todas las clases del sistema tienen el prefijo NS o algún otro prefijo extraño.
Esto es lo mismo de cómo todas las clases de DirectX tienen el prefijo D3D y cómo todas las clases de OpenGL tienen el prefijo gl .
Esto significa que no debe usar NS para nombrar sus propias clases y cuando ve NS , CA en Core Animation o CG en Core Graphics, comprende que esta es una llamada a un marco de sistema.
Swift cambia esta convención, porque Swift admite espacios de nombres y asigna sus tipos principales como String a los equivalentes NS.
fuente
Bill Bumgarner, alias @bbum, que debería saber , publicó en la lista de correo de CocoaBuilder en 2005 :
Parece que todos están de acuerdo en que el prefijo NX (para NeXT) se usó hasta 1993/1994, y los documentos de Apple dicen :
fuente