Pensé que podría ser útil para aquellos que recientemente han abordado el desarrollo de aplicaciones para el iPhone de Apple, comparar Adobe ActionScript - el lenguaje usado en Adobe Flash y Adobe Flex, más común entre los neo-programadores - y el lenguaje Objective-C utilizado por Apple para desarrollar sus aplicaciones. Objective-C es en efecto un lenguaje orientado a objetos en el sentido puro, no es que no se actionscript, pero Objective-C es sin duda una ventaja, ya que es una extensión del estándar ANSI C y su sintaxis es una mezcla entre C / C + + y Smalltalk, es un verdadero OO (Object-Oriented Language). Muchas de las características de Objective-C no están presentes en Actionscript que la última versión 3.0, se ha demostrado que crecer a pesar de que todavía está lejos del perfil de un buen lenguaje para el desarrollo del objeto.
Clases
Por ejemplo, podemos ver cómo están estructurados de manera diferente en las definiciones de clases de ActionScript y Objective-C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | / / Paquete de fórmula - de un espacio de nombres de Adobe {Paquete de fórmula / / Clase definición misma MyClass { public class MiClase { / / Definición de propiedad (pública o privada) myPropertyVar : String ; myPropertyVar public var: cadena ; / / Constructor MyClass ( ) { MyClass función pública () { / / Todo } / / Método público myMethod ( ) : void { miMetodo función pública (): void { / / Todo } } } |
En Objective-C, la primera diferencia (heredado de C) es la separación entre las "definiciones" y la implementación. En Objective-C que se trata siempre de dos tipos distintos de archivos:. H. M (en C tendríamos H. C).. El H. (Archivos de cabecera) contienen sólo las definiciones, por lo que ninguna instalación o ejecución.
1 2 3 4 5 6 7 8 |
. En el archivo M tenemos en su lugar:
1 2 3 4 5 6 7 | / / MyClass.m @ Implementación miClase void ) myMethod { - (Void) {miMetodo / / Todo } @ End |
Objective-C gestiona las propiedades y métodos de una manera muy diferente a Actionscript. Por ejemplo, el método myMethod visto anteriormente que se llama (o se invoca a) de esta manera:
1 | ; [Self miMetodo]; |
Se habla, de hecho, envío de mensajes, en lugar de llamar a un método!
Nota: esta función es real. Cuando se invoca un método en Objective-C se denomina una dirección física o un puntero de función. En Objective-C objeto realmente envía un mensaje real, donde se les pide que realice un particular "método"
La sintaxis con corchetes, tal vez el más difícil de digerir incluso para los desarrolladores de ANSI C, será más clara y sencilla si tenemos en cuenta que:
1 2 3 4 5 6 7 | myClass.myMethod (); / / Es igual a ; [MyClass miMetodo]; / / O ; myClass.myPropertyVar = 1978; / / Igual a 1978 ] ; [MyClass setMyPropertyVar: 1978]; |
En cuanto a la creación de objetos, a continuación, crear una instancia de una clase, tenemos:
1 | MyClass = new MyClass ( ) ; var istanceMyClass: MiClase = new MyClass (); |
1 2 3 4 5 6 | [ [ MyClass alloc ] init ] ; MyClass * istanceMyClass = [[MyClass alloc] init]; / / O, simplemente, [ MyClass alloc ] ; MyClass * istanceMyClass = [MyClass alloc]; / / Objective-C no soporta un fabricante, como / / Sucede en Actionscript: initWithName véase, por ejemplo, / / Inicializa initWithFrame o simplemente |
Esto es sólo una simple ayuda, dejando sin explorar muchas otras características de Objective-C, hay conceptos como punteros (similares a las referencias en Actionscript - pero no idénticos), los protocolos, las categorías y mucho más. Si se acaba de tratar con Objective-C descorazonado, como he sugerido antes, por el ANSI C juegos , no importa - por ahora - Actionscript, Javascript o PHP! Este último, sabiendo que el C ANSI, a redescubrir de una manera muy diferente.











[...] Nota de ActionScript para Objective-C (donde se compara el código y la sintaxis de ActionScript y Objective-C) en Actionscript [...]