Parte de la serie de tutoriales de Desarrollo de Aplicaciones para iOS
Objective-C, al igual que muchos otros lenguajes como C++, C#, PHP o Java, está basado en el lenguaje de programación C, por lo que si has utilizado alguno de estos lenguajes no te será muy difícil adaptarte a él (al menos en términos de tipos y operadores).
Aun así, Objective-C no fue creado desde cero, como los demás, sino que fue creciendo poco a poco en una especie de "capas" construidas sobre el lenguaje C. Por esta misma razón, guarda muchas más similitudes con C que cualquier otro de los lenguajes mencionados.
Tipos de Datos
En Objective-C, como en cualquier otro lenguaje, existe una serie de tipos de datos primitivos que nos permiten representar los distintos tipos de información que manejará nuestro código. Además, estos tipos nos habilitan para la construcción de otros más complejos.
Al estar construido sobre el lenguaje de programación C, Objective-C comparte la mayoría de estos tipos de datos con dicho lenguaje. La única excepción es el tipo de dato booleano, el cual no existía en un principio en el lenguaje C.
Los ingenieros que trabajaron en Objective-C crearon su propia implementación de los booleanos y, más tarde, se añadiría este tipo de dato al lenguaje C. Por esta razón, Objective-C cuenta con dos formas diferentes de representar tipos de datos booleanos, BOOL y bool. El primero comúnmente tomará los valores de YES o NO, a diferencia del true y false a los que estamos acostumbrados, los cuales son utilizados por la segunda opción.
La siguiente tabla muestra los tipos de datos primitivos en Objective-C y el espacio que ocupa cada uno.
La siguiente tabla muestra los tipos de datos primitivos en Objective-C y el espacio que ocupa cada uno.
Tipo | Descripción | Tamaño |
char | Caracter | 1 byte |
int | Número entero | 4 bytes |
float | Número de punto flotante de precision simple | 4 bytes |
double | Número de punto flotante de precisión doble | 8 bytes |
short | Número entero (menor tamaño) | 2 bytes |
long | Equivale a un entero en la arquitectura del iPhone. | 4 bytes |
long long | El doble de un long | 8 bytes |
BOOL | Boolean | 1 byte |
bool | Booleano | 1 byte |
Para ver el tamaño real de cada tipo de dato en las distintas arquitecturas de Mac OS X y iOS, se puede correr el siguiente código. (Asegúrate de estar trabajando en un proyecto del sistema que deseas analizar.)
NSLog(@"Primitive sizes:"); NSLog(@"The size of a char is: %d.", sizeof(char)); NSLog(@"The size of short is: %d.", sizeof(short)); NSLog(@"The size of int is: %d.", sizeof(int)); NSLog(@"The size of long is: %d.", sizeof(long)); NSLog(@"The size of long long is: %d.", sizeof(long long)); NSLog(@"The size of a unsigned char is: %d.", sizeof(unsigned char)); NSLog(@"The size of unsigned short is: %d.", sizeof(unsigned short)); NSLog(@"The size of unsigned int is: %d.", sizeof(unsigned int)); NSLog(@"The size of unsigned long is: %d.", sizeof(unsigned long)); NSLog(@"The size of unsigned long long is: %d.", sizeof(unsigned long long)); NSLog(@"The size of a float is: %d.", sizeof(float)); NSLog(@"The size of a double is %d.", sizeof(double)); NSLog(@"Ranges:"); NSLog(@"CHAR_MIN: %c", CHAR_MIN); NSLog(@"CHAR_MAX: %c", CHAR_MAX); NSLog(@"SHRT_MIN: %hi", SHRT_MIN); // signed short int NSLog(@"SHRT_MAX: %hi", SHRT_MAX); NSLog(@"INT_MIN: %i", INT_MIN); NSLog(@"INT_MAX: %i", INT_MAX); NSLog(@"LONG_MIN: %li", LONG_MIN); // signed long int NSLog(@"LONG_MAX: %li", LONG_MAX); NSLog(@"ULONG_MAX: %lu", ULONG_MAX); // unsigned long int NSLog(@"LLONG_MIN: %lli", LLONG_MIN); // signed long long int NSLog(@"LLONG_MAX: %lli", LLONG_MAX); NSLog(@"ULLONG_MAX: %llu", ULLONG_MAX); // unsigned long long int
Operadores
Objective-C permite el uso de distintos operadores para trabajar con los datos de nuestra aplicación. Puedes encontrar una lista de estos operadores ordenados por funcionalidad en la siguiente liga:
-http://www.dummies.com/how-to/content/objectivec-operators.html
Oh, interesante eso de la ausencia del tipo de dato booleano en C. Sobre BOOL y bool no recuerdo la diferencia, si es que existe o es cuestiôn de adaptaciôn. :3
ResponderEliminarYo tampoco tenía idea de que en C no existiera el dato bool. Y yo creí que había aprendido POO al 100! jajaja.
ResponderEliminarNOCIERTO
ResponderEliminar