Fundamentos del lenguaje
27 pasos en 9 series de Objective-C.
Objective-C es C con alma de Smalltalk: envíos de mensajes entre corchetes atornillados al C plano en 1984, licenciado por NeXT, y llevado dentro de cada Mac y cada iPhone jamás vendidos. Durante tres décadas fue la forma de escribir para las plataformas Apple, y todavía corre bases de código enormes ahí — Swift interopera con él precisamente porque buena parte del mundo de abajo sigue siendo Objective-C. Su dinamismo es el punto: los mensajes se resuelven en ejecución, nil los absorbe en silencio, y las clases son objetos a los que puedes preguntar.
Este tour teclea lo esencial: el main con autorelease pool, NSString y los especificadores de formato, envíos de mensajes y selectores intercalados, alloc/init y la danza del inicializador designado, @interface y @property, los literales de colección con sus subclases mutables, enumeración rápida y por bloques, orden con comparadores, blocks con captura y __block, protocolos, categorías, tipado dinámico con id, el boxing de NSNumber, NSRange y NS_ENUM. El Bis es el trío de scripts de siempre, hablado en corchetes y NSLog.
Valores
- La forma del programaEl marco clásico: main, un autorelease pool, y NSLog de salida.
- Primitivos y formatosLos tipos de C viven junto a los objetos; BOOL responde YES o NO.
- NSStringLos literales @"" son objetos; los mensajes hacen todo el trabajo.
Mensajes
- Envíos de mensajesCorchetes por todas partes — y nil absorbe mensajes en silencio.
- SelectoresLos nombres de método se intercalan con sus argumentos, por partes.
- alloc e initNacimiento en dos pasos: la clase asigna, la instancia inicializa.
Clases
- @interface y @implementationEl contrato y el código, declarados por separado.
- Propiedades@property escribe el getter, el setter y el almacenamiento por ti.
- El inicializador designadoLa danza del init: llama a super, prepara bajo el if, devuelve self.
Colecciones
- NSArray@[] arma un arreglo; subíndices y mensajes lo leen.
- NSDictionary@{} empareja claves con valores; el fallo responde nil.
- Colecciones mutablesLas clases mutables heredan de las inmutables y agregan escritores.
Enumeración
- Enumeración rápidafor-in recorre arreglos en orden y diccionarios por clave.
- Enumeración por bloquesLa colección maneja; tu block viaja con índice y freno.
- Ordenar con comparadoresUn block devuelve ascendente, igual o descendente; el arreglo obedece.
Blocks
- BlocksValores de función con la famosa firma de adentro hacia afuera.
- Captura en blocksLas capturas planas son fotos; __block concede escritura.
- Blocks como parámetrosPasa comportamiento a una función, con firma de C incluida.
Protocolos y dinamismo
- ProtocolosUn contrato que las clases adoptan entre paréntesis angulares.
- CategoríasAgrega métodos a una clase que no es tuya — incluso NSString.
- Tipado dinámicoid guarda lo que sea; las preguntas se hacen en ejecución.
Interop con C
- Boxing con NSNumber@() sube valores de C a objetos; el unboxing es un accesor por tipo.
- NSRange y structs de CLos structs planos de C fluyen entre mensajes y locales.
- NS_ENUMEnums con tipo subyacente fijo, con switch exhaustivo.
Bis
- word_freq.mUna tabla de frecuencias con split, un diccionario contador y un orden.
- grade_report.mBoletines desde una clase Student, un comparador y format strings.
- temp_stats.mUna semana de temperaturas: extremos, media, barras y saltos.