ios - significa - todo sobre iphone




¿Qué significa el prefijo NS? (7)

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


Próximo paso. Es un remanente de cuando object-c fue creado por NeXT para escribir el siguiente paso (más tarde os x) y todas las aplicaciones asociadas, etc. Representan elementos que no forman parte del soporte C original, por ejemplo, no hay una "cadena" El elemento en C, así que en object-c, es un elemento de base adicional 'NSString'.


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 por eso es exactamente necesario.

En C ++ hay espacios de nombres y casi todo va en estándar

Por eso tienes std :: string.

Los espacios de nombres se usan, por lo que es más difícil para usted cometer un error y puede escribir su propia cadena de clase sin que haya conflicto con la del sistema.

Objective-C es un superconjunto de C, pero no incluye espacios de nombres y, por la misma razón, todas las clases del sistema están prefijadas con NS o algún otro prefijo extraño.

Esto es lo mismo de cómo todas las clases de DirectX están prefijadas con D3D y cómo todas las clases de OpenGL están prefijadas con gl .

Esto significa que no debe usar NS para nombrar sus propias clases y cuando vea NS , CA en Core Animation o CG en Core Graphics, comprende que se trata de una llamada a un marco de sistema.

Swift cambia esta convención, porque Swift admite el espacio de nombres y asigna sus tipos de núcleo como String a los equivalentes de NS.


Cuando NeXT definía la API NextStep (a diferencia del sistema operativo NEXTSTEP), utilizaron el prefijo NX, como en NXConstantString. Cuando escribían la especificación OpenStep con Sun (para no confundirse con el sistema operativo OPENSTEP) utilizaban el prefijo NS, como en NSObject.


De Cocoa_ (API) Wikipedia :

(énfasis añadido)

Las clases de cacao comienzan con el acrónimo "NS" (para la creación NeXT-Sun de OpenStep o para el término propietario original para el marco OpenStep, NeXTSTEP ): NSString, NSArray, etc.

Foundation Kit , o más comúnmente simplemente Foundation , apareció por primera vez en OpenStep . En Mac OS X, se basa en Core Foundation. Foundation es una biblioteca genérica orientada a objetos que proporciona manipulación de cadenas y valores, contenedores e iteración, computación distribuida, ciclos de ejecución y otras funciones que no están directamente vinculadas a la interfaz gráfica de usuario. El prefijo "NS" , usado para todas las clases y constantes en el marco, proviene de la herencia OPENSTEP de Cocoa, que fue desarrollada conjuntamente por NeXT y Sun.


El código original para los marcos de Cocoa provino de la Fundación de bibliotecas NeXTSTEP y AppKit (esos nombres todavía se usan en los marcos de Cocoa de Apple), y los ingenieros de NextStep eligieron el prefijo de sus símbolos con NS.

Debido a que 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 un prefijo único para que no coincidan. Esto es particularmente importante para los símbolos definidos en un marco.

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



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, a pesar de que no se conocía como la fundación 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 se cambió a NS . Lo más probable es que la S no representara a Sun en ese momento, pero luego de que Sun intervino en el consenso general fue que Sun estaba de acuerdo con su participación.

De hecho, tenía una referencia para esto, pero no puedo encontrarlo ahora mismo. Actualizaré la publicación cuando la encuentre de nuevo.





cocoa-touch