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 22 / 68

Buscar en un array (containsObject:)

En esta lección comprobarás si un valor está dentro de un array.

containsObject: devuelve YES o NO. Al imprimirlo con %d se ve como 1 o 0, porque BOOL es un número por debajo.

El código de ejemplo pregunta si una fruta está en la lista.

Lo importante es cómo compara: containsObject: usa isEqual:, no la identidad. Es decir, compara el contenido, así que dos cadenas iguales creadas por separado se consideran la misma. Es lo que casi siempre se quiere.

Esa distinción entre isEqual: y == es una de las que más problemas causa. == compara los punteros, es decir si son el mismo objeto. Para cadenas, == a veces funciona por casualidad —los literales iguales pueden compartir memoria— y falla en cuanto la cadena se construye en tiempo de ejecución. La regla es siempre isEqualToString: para comparar textos.

Sobre el rendimiento: la búsqueda recorre el array elemento a elemento. Cuando se repite muchas veces, un NSSet es la estructura correcta.

📖 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)