AD

¿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 Udemy

Enlace de afiliado. No te cuesta nada extra.

🍎Lecciones de Objective-C
Lección 51 / 68

Funciones que sirven para cualquier tipo (el tipo id)

En esta lección escribirás una función que vale para cualquier objeto.

id es el tipo «cualquier objeto». Una función que recibe y devuelve id sirve para lo que sea, siempre que el objeto entienda los mensajes que se le envían.

El código de ejemplo compara dos números y luego dos palabras con la misma función.

Esto funciona porque tanto NSNumber como NSString implementan compare:. Con un objeto que no lo implemente, la línea compila igual y falla al ejecutarse con «unrecognized selector» — el compilador no puede comprobar nada sobre un id.

Esa es la diferencia de fondo con los genéricos de Swift o de Java: aquí la flexibilidad se paga con comprobaciones que llegan tarde. Desde 2015 existen los genéricos ligeros de Objective-C, NSArray<NSString *>, que dan avisos al compilar; pero son solo avisos, y en tiempo de ejecución no impiden nada.

Con las palabras del ejemplo hay un detalle propio del español: compare: usa el orden de los códigos Unicode, donde las vocales con tilde van después de la z. Para ordenar nombres de personas hace falta localizedStandardCompare:, que aplica las reglas del idioma.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)