¿Ya dominas lo básico? Un curso estructurado de Objective-C es la vía rápida para dar el salto.
Ver cursos de Objective-C en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (NSLog)
- 03Usar variables
- 04Condicionales (la sentencia if)
- 05Repetir con bucles (for)
- 06Escribir tu propia función
- 07Trabajar con arrays
- 08Repetir con while
- 09Clases (programación orientada a objetos)
- 10Gestión de errores (@try / @catch)
- 11Ordenar un array
- 12Funciones recursivas
- 13La biblioteca de cadenas
- 14La sentencia switch
- 15El operador ternario
- 16Ampliar una clase con una categoría
- 17Escribir comentarios
- 18Operadores lógicos (&&, ||, !)
- 19Constantes (static const)
- 20Partir y unir cadenas
- 21Escribir código a prueba de nil
- 22Buscar en un array (containsObject:)
- 23Transformar un array
- 24Arrays bidimensionales (datos en forma de tabla)
- 25Errores propios (clasificar con NSError)
- 26Escribir una función de argumentos variables
- 27Colecciones sin duplicados con NSSet
- 28Comprobar que el código es correcto (primer paso hacia las pruebas)
- 29Funciones de orden superior (pasar un bloque)
- 30Pilas y colas (estructuras de datos básicas)
- 31Conversión de tipos
- 32Introducción a las expresiones regulares
- 33El algoritmo de búsqueda binaria
- 34Construir un cifrado César
- 35Entender cómo funciona la ordenación de burbuja
- 36Construir y mostrar una fecha (NSDateComponents)
- 37Escribir varias pruebas juntas
- 38Acelerar cálculos con memoización
- 39Normalizar cadenas
- 40Copia superficial y copia profunda
- 41Enumeraciones básicas
- 42Aplanar un array
- 43Invertir una cadena y detectar palíndromos
- 44Emparejar dos arrays (la operación zip)
- 45Redondear números (floor, ceil, round)
- 46Texto de varias líneas (juntar literales adyacentes)
- 47Devolver varios valores (NSDictionary)
- 48Calcular el MCD y el MCM
- 49Dar formato a los números
- 50Limpieza con @try / @catch / @finally
- 51Funciones que sirven para cualquier tipo (el tipo id)
- 52Leer y escribir archivos
- 53Generar números aleatorios
- 54Operaciones a nivel de bits
- 55Recibir argumentos de la línea de órdenes
- 56Esperar un tiempo determinado
- 57Cuidado con los errores de la coma flotante
- 58Leer un valor de la entrada estándar
- 59FizzBuzz (el ejercicio clásico)
- 60Comprobar si un número es primo
- 61Operaciones de conjuntos con NSSet
- 62Convertir entre bases (binario y hexadecimal)
- 63Comprobar el equilibrio de los paréntesis
- 64Comprobar si dos palabras son anagramas
- 65Comprobar si un año es bisiesto
- 66Convertir temperaturas
- 67Descomponer en factores primos
- 68[Aplicado] Un programa que resume notas
Ampliar una clase con una categoría
En esta lección añadirás un método a una clase que no escribiste tú.
Una categoría se declara como @interface NSString (Nombre) y se implementa igual. A partir de ahí, el método nuevo está disponible en todas las instancias de esa clase.
El código de ejemplo añade un método a NSString y lo usa sobre un literal.
Esto es una de las capacidades más llamativas del lenguaje: puedes ampliar clases del sistema sin heredar de ellas ni envolverlas. Es lo que hacen la mayoría de las bibliotecas de utilidades de Objective-C.
Y tiene un peligro serio que conviene conocer: si dos categorías definen un método con el mismo nombre, cuál gana es impredecible y depende del orden de carga. Peor aún, si tu método coincide con uno que Apple añada en una versión futura, lo sustituyes silenciosamente y rompes el framework. Por eso la convención firme del ecosistema es prefijar los métodos de categoría con unas iniciales propias: xyz_shout en lugar de shout.
Swift resolvió lo mismo con las extensiones, que no tienen este problema porque el compilador detecta los conflictos.
🧪 Este sitio no puede compilar ni ejecutar Objective-C directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
