¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Diferencia entre revisiones de «Objective-C»

(Página creada con '{{Ficha Software |nombre=Objective-C. |familia=Lenguaje de Programación C. |imagen= |tamaño= |descripción= Lenguaje de Programación que utiliza Cocoa. |imagen2= |tamaño...')
 
m (Texto reemplazado: «<div align="justify">» por «»)
 
(No se muestran 2 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 +
 
{{Ficha Software
 
{{Ficha Software
|nombre=Objective-C.
+
|nombre=Objective-C
|familia=Lenguaje de Programación C.
+
|familia=Lenguaje de Programación C
|imagen=
+
|imagen=objectiveC.jpg
 
|tamaño=
 
|tamaño=
|descripción= Lenguaje de Programación que utiliza [[Cocoa]].
+
|descripción= Lenguaje de Programación que utiliza [[Cocoa]]
 
|imagen2=
 
|imagen2=
 
|tamaño2=
 
|tamaño2=
 
|descripción2=
 
|descripción2=
|creador=[[Apple]].
+
|creador=[[Apple]]
 
|desarrollador=
 
|desarrollador=
 
|diseñador=
 
|diseñador=
Línea 22: Línea 23:
 
|web=
 
|web=
 
}}
 
}}
'''Objective-C''' es un [[lenguaje de programación]] orientado a objetos y basado en mensajes, altamente dinámico. Este lenguaje consiste en un pequeño número de incrementos a [[ANSI C]], y está caracterizado por su aplazamiento a muchas decisiones hasta que se cumple el tiempo de corrida del programa creado, soportando envíos dinámicos, escritura y carga dinámica.  
+
'''Objective-C'''. Es un [[lenguaje de programación]] orientado a objetos y basado en mensajes, altamente dinámico. Este lenguaje consiste en un pequeño número de incrementos a [[ANSI C]], y está caracterizado por su aplazamiento a muchas decisiones hasta que se cumple el tiempo de corrida del programa creado, soportando envíos dinámicos, escritura y carga dinámica.  
 
   
 
   
 
Estas características soportan muchos de los patrones de diseño que utiliza [[Cocoa]], incluyendo la delegación, notificación, y [[Modelo Vista Controlador]]. Debido a que es una extensión del lenguaje [[C]], y al contener código y librerías de C, incluso aquellas que están basadas en [[C++]], puede trabajar con aplicaciones basadas en [[Cocoa]], sin perder nada del desarrollo original.
 
Estas características soportan muchos de los patrones de diseño que utiliza [[Cocoa]], incluyendo la delegación, notificación, y [[Modelo Vista Controlador]]. Debido a que es una extensión del lenguaje [[C]], y al contener código y librerías de C, incluso aquellas que están basadas en [[C++]], puede trabajar con aplicaciones basadas en [[Cocoa]], sin perder nada del desarrollo original.
== Objetos. ==
+
== Objetos==
 
La unidad base de la actividad en todos los lenguajes orientados a objetos es el [[objeto]] – una entidad que asocia los datos con las operaciones que pueden ser hechas con esos datos. Objective-C provee un [[tipo de datos]] diferenciado, id, definido como un [[puntero]] a los datos de un objeto que permite trabajar con objetos. Un objeto puede ser declarado en el código de esta manera:
 
La unidad base de la actividad en todos los lenguajes orientados a objetos es el [[objeto]] – una entidad que asocia los datos con las operaciones que pueden ser hechas con esos datos. Objective-C provee un [[tipo de datos]] diferenciado, id, definido como un [[puntero]] a los datos de un objeto que permite trabajar con objetos. Un objeto puede ser declarado en el código de esta manera:
 
'''''id''''' ''anObject'';
 
'''''id''''' ''anObject'';
 
Para todas las construcciones orientadas a objetos de Objective-C, incluyendo los valores de retorno de los métodos, '''''id''''', reemplaza el tipo de datos '''int''', de [[C]], como el tipo de datos de retorno por defecto.
 
Para todas las construcciones orientadas a objetos de Objective-C, incluyendo los valores de retorno de los métodos, '''''id''''', reemplaza el tipo de datos '''int''', de [[C]], como el tipo de datos de retorno por defecto.
=== Escritura dinámica. ===
+
=== Escritura dinámica===
 
El tipo '''id''' es completamente ilimitado. Este tipo de datos dice muy poco acerca del [[objeto]], indicando únicamente que el objeto es una entidad del sistema que puede responder a determinados mensajes y ser consultado para su comportamiento. Este tipo de comportamiento, conocido como “escritura dinámica”, permite al sistema encontrar la clase a la cual pertenece el objeto y determinar los mensajes necesarios para las llamadas de los métodos.
 
El tipo '''id''' es completamente ilimitado. Este tipo de datos dice muy poco acerca del [[objeto]], indicando únicamente que el objeto es una entidad del sistema que puede responder a determinados mensajes y ser consultado para su comportamiento. Este tipo de comportamiento, conocido como “escritura dinámica”, permite al sistema encontrar la clase a la cual pertenece el objeto y determinar los mensajes necesarios para las llamadas de los métodos.
=== Escritura estática. ===
+
=== Escritura estática===
 
Objective-C soporta la escritura estática, en la cual se declara una [[variable]], usando un [[puntero]] a su tipo de [[clase]], y no ''id'', por ejemplo:
 
Objective-C soporta la escritura estática, en la cual se declara una [[variable]], usando un [[puntero]] a su tipo de [[clase]], y no ''id'', por ejemplo:
 
''NSObject'' *''object'';
 
''NSObject'' *''object'';
Línea 37: Línea 38:
 
== Mensajes ==  
 
== Mensajes ==  
 
Los objetos en Objective-C son extremadamente autónomos, no son contenedores pasivos de comportamientos y estados, ni son datos y una colección de funciones que pueden ser aplicadas a los datos. Objective-C reafirma este concepto, permitiendo a cualquier mensaje- una solicitud para desarrollar una acción en particular- ser pasado a cualquier objeto.  
 
Los objetos en Objective-C son extremadamente autónomos, no son contenedores pasivos de comportamientos y estados, ni son datos y una colección de funciones que pueden ser aplicadas a los datos. Objective-C reafirma este concepto, permitiendo a cualquier mensaje- una solicitud para desarrollar una acción en particular- ser pasado a cualquier objeto.  
=== Estructura de un mensaje. ===
+
=== Estructura de un mensaje ===
 
Las expresiones de mensajes en Objective-C son encerradas entre [[corchetes]]. La expresión consiste de las siguientes partes: el objeto al cual se le envía el mensaje ([[receptor]]), el nombre del [[mensaje]], y opcionalmente algunos parámetros.  
 
Las expresiones de mensajes en Objective-C son encerradas entre [[corchetes]]. La expresión consiste de las siguientes partes: el objeto al cual se le envía el mensaje ([[receptor]]), el nombre del [[mensaje]], y opcionalmente algunos parámetros.  
== Clases. ==
+
== Clases==
 
Los objetos en Objective-C son definidos en términos de una [[clase]]. Las nuevas clases de objetos son especificaciones de una clase más general. Cada clase nueva es la acumulación de las definiciones de la clase de la que hereda y puede expandir estas definiciones añadiendo nuevos métodos y variables o redefiniendo métodos existentes para realizar nuevas funcionalidades o expandir las heredadas.  
 
Los objetos en Objective-C son definidos en términos de una [[clase]]. Las nuevas clases de objetos son especificaciones de una clase más general. Cada clase nueva es la acumulación de las definiciones de la clase de la que hereda y puede expandir estas definiciones añadiendo nuevos métodos y variables o redefiniendo métodos existentes para realizar nuevas funcionalidades o expandir las heredadas.  
=== Definición de las clases. ===
+
=== Definición de las clases ===
 
En Objective-C, las clases son definidas en dos partes, usualmente separadas en dos archivos diferentes:
 
En Objective-C, las clases son definidas en dos partes, usualmente separadas en dos archivos diferentes:
 
- Una interfaz, la cual declara los métodos de las clases y las variables y nombra sus superclases. La interfaz usualmente es especificada en un archivo con la extensión .h, típico de los archivos cabecera de C.
 
- Una interfaz, la cual declara los métodos de las clases y las variables y nombra sus superclases. La interfaz usualmente es especificada en un archivo con la extensión .h, típico de los archivos cabecera de C.
 
- Una implementación, la cual contiene el código que define los métodos de las clases. Por consenso, los archivos que contienen la implementación de una clase tienen una extensión .m
 
- Una implementación, la cual contiene el código que define los métodos de las clases. Por consenso, los archivos que contienen la implementación de una clase tienen una extensión .m
== Categorías. ==
+
== Categorías==
 
Las categorías son una característica de Objective-C que permite la especialización de las clases sin la necesidad de utilizar la [[herencia]]. Las categorías pueden ser usadas para añadir comportamientos a clases existentes, sin tener que recompilarlas. Las instancias de clases especializadas adoptan los nuevos comportamientos. Incluso las instancias existentes y las instancias creadas y usadas completamente dentro de la implementación de las clases de Cocoa, adquieren el nuevo comportamiento.  
 
Las categorías son una característica de Objective-C que permite la especialización de las clases sin la necesidad de utilizar la [[herencia]]. Las categorías pueden ser usadas para añadir comportamientos a clases existentes, sin tener que recompilarlas. Las instancias de clases especializadas adoptan los nuevos comportamientos. Incluso las instancias existentes y las instancias creadas y usadas completamente dentro de la implementación de las clases de Cocoa, adquieren el nuevo comportamiento.  
== Protocolos. ==
+
== Protocolos==
 
Los protocolos de Objective-C son similares a las interfaces de [[Java]]. Los protocolos especifican los comportamientos de los objetos independientes de la clase de los objetos.  
 
Los protocolos de Objective-C son similares a las interfaces de [[Java]]. Los protocolos especifican los comportamientos de los objetos independientes de la clase de los objetos.  
== Tiempo de corrida. ==
+
== Tiempo de corrida==
 
Objective-C incluye un sistema de tiempo de corrida similar en muchos sentidos a la [[Máquina Virtual de Java]] ([[JVM]], del inglés Java Virtual Machine). El tiempo de corrida de Objective-C provee muchas de las características dinámicas de Objective-C y la carga dinámica de objetos. A diferencia de la JVM, el tiempo de corrida de Objective-C es pequeño y no provee características de seguridad. Es escrito en lenguaje C estándar.  
 
Objective-C incluye un sistema de tiempo de corrida similar en muchos sentidos a la [[Máquina Virtual de Java]] ([[JVM]], del inglés Java Virtual Machine). El tiempo de corrida de Objective-C provee muchas de las características dinámicas de Objective-C y la carga dinámica de objetos. A diferencia de la JVM, el tiempo de corrida de Objective-C es pequeño y no provee características de seguridad. Es escrito en lenguaje C estándar.  
== Fuentes. ==
+
== Fuentes==
Cocoa Programming. Autores: Scott Anguish, Erik M. Buck, Donald A. Yacktman. Publicado el 20 de septiembre de 2002.  
+
*Cocoa Programming. Autores: Scott Anguish, Erik M. Buck, Donald A. Yacktman. Publicado el 20 de septiembre de 2002.  
Cocoa_in_a_Nutshell. Autores: Michael Beam, James Duncan Davidson. Publicado en mayo de 2003.
+
*Cocoa_in_a_Nutshell. Autores: Michael Beam, James Duncan Davidson. Publicado en mayo de 2003.
  
 
[[Category:Informática]]
 
[[Category:Informática]]

última versión al 16:48 6 jul 2019

Objective-C
Información sobre la plantilla
Parte de la familia Lenguaje de Programación C
ObjectiveC.jpg
Lenguaje de Programación que utiliza Cocoa
CreadorApple

Objective-C. Es un lenguaje de programación orientado a objetos y basado en mensajes, altamente dinámico. Este lenguaje consiste en un pequeño número de incrementos a ANSI C, y está caracterizado por su aplazamiento a muchas decisiones hasta que se cumple el tiempo de corrida del programa creado, soportando envíos dinámicos, escritura y carga dinámica.

Estas características soportan muchos de los patrones de diseño que utiliza Cocoa, incluyendo la delegación, notificación, y Modelo Vista Controlador. Debido a que es una extensión del lenguaje C, y al contener código y librerías de C, incluso aquellas que están basadas en C++, puede trabajar con aplicaciones basadas en Cocoa, sin perder nada del desarrollo original.

Objetos

La unidad base de la actividad en todos los lenguajes orientados a objetos es el objeto – una entidad que asocia los datos con las operaciones que pueden ser hechas con esos datos. Objective-C provee un tipo de datos diferenciado, id, definido como un puntero a los datos de un objeto que permite trabajar con objetos. Un objeto puede ser declarado en el código de esta manera: id anObject; Para todas las construcciones orientadas a objetos de Objective-C, incluyendo los valores de retorno de los métodos, id, reemplaza el tipo de datos int, de C, como el tipo de datos de retorno por defecto.

Escritura dinámica

El tipo id es completamente ilimitado. Este tipo de datos dice muy poco acerca del objeto, indicando únicamente que el objeto es una entidad del sistema que puede responder a determinados mensajes y ser consultado para su comportamiento. Este tipo de comportamiento, conocido como “escritura dinámica”, permite al sistema encontrar la clase a la cual pertenece el objeto y determinar los mensajes necesarios para las llamadas de los métodos.

Escritura estática

Objective-C soporta la escritura estática, en la cual se declara una variable, usando un puntero a su tipo de clase, y no id, por ejemplo: NSObject *object; Esta declaración activará algún grado de chequeo de tiempo de compilación para generar advertencias (warnings), cuando no hay concordancia con un tipo de datos, y además cuando se usan métodos no implementados por una clase.

Mensajes

Los objetos en Objective-C son extremadamente autónomos, no son contenedores pasivos de comportamientos y estados, ni son datos y una colección de funciones que pueden ser aplicadas a los datos. Objective-C reafirma este concepto, permitiendo a cualquier mensaje- una solicitud para desarrollar una acción en particular- ser pasado a cualquier objeto.

Estructura de un mensaje

Las expresiones de mensajes en Objective-C son encerradas entre corchetes. La expresión consiste de las siguientes partes: el objeto al cual se le envía el mensaje (receptor), el nombre del mensaje, y opcionalmente algunos parámetros.

Clases

Los objetos en Objective-C son definidos en términos de una clase. Las nuevas clases de objetos son especificaciones de una clase más general. Cada clase nueva es la acumulación de las definiciones de la clase de la que hereda y puede expandir estas definiciones añadiendo nuevos métodos y variables o redefiniendo métodos existentes para realizar nuevas funcionalidades o expandir las heredadas.

Definición de las clases

En Objective-C, las clases son definidas en dos partes, usualmente separadas en dos archivos diferentes: - Una interfaz, la cual declara los métodos de las clases y las variables y nombra sus superclases. La interfaz usualmente es especificada en un archivo con la extensión .h, típico de los archivos cabecera de C. - Una implementación, la cual contiene el código que define los métodos de las clases. Por consenso, los archivos que contienen la implementación de una clase tienen una extensión .m

Categorías

Las categorías son una característica de Objective-C que permite la especialización de las clases sin la necesidad de utilizar la herencia. Las categorías pueden ser usadas para añadir comportamientos a clases existentes, sin tener que recompilarlas. Las instancias de clases especializadas adoptan los nuevos comportamientos. Incluso las instancias existentes y las instancias creadas y usadas completamente dentro de la implementación de las clases de Cocoa, adquieren el nuevo comportamiento.

Protocolos

Los protocolos de Objective-C son similares a las interfaces de Java. Los protocolos especifican los comportamientos de los objetos independientes de la clase de los objetos.

Tiempo de corrida

Objective-C incluye un sistema de tiempo de corrida similar en muchos sentidos a la Máquina Virtual de Java (JVM, del inglés Java Virtual Machine). El tiempo de corrida de Objective-C provee muchas de las características dinámicas de Objective-C y la carga dinámica de objetos. A diferencia de la JVM, el tiempo de corrida de Objective-C es pequeño y no provee características de seguridad. Es escrito en lenguaje C estándar.

Fuentes

  • Cocoa Programming. Autores: Scott Anguish, Erik M. Buck, Donald A. Yacktman. Publicado el 20 de septiembre de 2002.
  • Cocoa_in_a_Nutshell. Autores: Michael Beam, James Duncan Davidson. Publicado en mayo de 2003.