ios - quien - qué significa apple
¿Qué significa el prefijo NS? (10)
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''.
Muchas clases en Cocoa / Cocoa Touch tienen el prefijo NS. Qué significa eso?
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.
Bill Bumgarner también conocido como @bbum, que debería saber , publicó en la cocoabuilder.com/archive/cocoa/136618-what-does-ns-means.html :
Sun entró en la imagen un poco después de que el prefijo NS entró en juego. El prefijo NS surgió en las API públicas durante el cambio de NeXTSTEP 3.0 a NeXTSTEP 4.0 (también conocido como OpenStep). Antes de la versión 4.0, un puñado de símbolos usaban el prefijo NX, pero la mayoría de las clases proporcionadas por las bibliotecas del sistema no tenían ningún prefijo: Lista, Hashtable, Vista, etc.
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 :
La API oficial de OpenStep, publicada en septiembre de 1994, fue la primera en dividir la API entre Foundation y Application Kit y la primera en usar el prefijo "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.
(é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.
De los documentos del desarrollador de Apple:
Nota histórica: si se pregunta por qué tantas de las clases que encuentra tienen un prefijo NS, es debido a la historia pasada de Cocoa y Cocoa Touch. Cocoa comenzó su vida como los marcos recopilados que se utilizan para crear aplicaciones para el sistema operativo NeXTStep. Cuando Apple compró NeXT en 1996, gran parte de NeXTStep se incorporó a OS X, incluidos los nombres de clase existentes. Cocoa Touch se introdujo como el equivalente de iOS de Cocoa; Algunas clases están disponibles tanto en Cocoa como en Cocoa Touch, aunque también hay una gran cantidad de clases únicas para cada plataforma. Los prefijos de dos letras como NS y UI (para elementos de la interfaz de usuario en iOS) están reservados para su uso por parte de Apple.
Fuente: Programación con Objective-C.
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 .
Es de la herencia NeXTSTEP .
Es el patrimonio NextStep (= NS). NeXT fue la compañía de computadoras que Steve Jobs formó 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 fue posteriormente renombrada como OpenStep (que también fue el nombre en una API que NeXT desarrolló junto con Sun), que a su vez se convirtió en Cocoa.
Estos nombres diferentes son en realidad bastante confusos (especialmente porque algunos de los nombres solo difieren en mayúsculas o minúsculas ...), intente esto para obtener una explicació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.