Objective-C es una especie de lenguaje híbrido, en el que puedes ser tan dinámico y estático como quieras. Puede declarar todos los tipos de todas las variables si lo desea, incluso puede declarar variables delegadas como NSObject * si lo desea. El tipo de identificación funciona menos como un tipo real y más como una pista para el compilador diciéndole “oye, sé lo que estoy haciendo, solo confía en mí”, haciendo que el compilador evite cualquier tipo de verificación en esa variable en particular.
El primer beneficio del sistema de tipo Objective-C es que los tipos de contenedor (NSArray, NSDictionary, NSSet) aceptan y devuelven tipos de identificación. Esto elimina la necesidad de plantillas y genéricos por completo (como en C ++, Java y C #).
Aún mejor, en realidad puede tener contenedores con elementos de cualquier tipo dentro. Siempre que sepa lo que hay dentro, nadie se quejará si agrega dos NSStrings, un NSNumber y un NSValue dentro del mismo NSArray. Puede hacerlo en otros idiomas, pero debe usar la clase base “Objeto”, o el tipo void *, y luego debe encajonar y desempaquetar (o subir y bajar) las variables para obtener el mismo comportamiento. En Objective-C simplemente asigna, lo que elimina el ruido generado por los operadores de casting y las operaciones de boxeo. Luego puede preguntar “respondsToSelector:” o “clase” a cada objeto, para conocer la identidad y las operaciones que puede realizar con ellos, en tiempo de ejecución. En Objective-C, la reflexión es un ciudadano de primera clase.
- ¿Por qué cuesta más hacer una aplicación en comparación con un sitio web?
- ¿Dónde puedo encontrar talentosos desarrolladores de aplicaciones para iPhone y Android en Nueva York?
- ¿Cuál es la jerarquía de trabajo de desarrollo de aplicaciones iOS en una empresa de software?
- Swift se puede compilar con el LLVM que genera el código Objective-C y luego Objective-C se compilará en código máquina o ¿cómo funciona?
- ¿Cuánto costaría desarrollar y mantener una aplicación de red social desde cero usando Swift en la plataforma iOS por su cuenta?
Crédito: Aprovechar al máximo las características dinámicas de Objective-C