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

Colecciones sin duplicados con NSSet

En esta lección guardarás una colección donde cada valor aparece una sola vez.

NSSet elimina los repetidos por su cuenta. count da el número de elementos distintos y containsObject: comprueba la pertenencia.

El código de ejemplo convierte un array con repeticiones y comprueba si contiene un valor.

Un NSSet no tiene orden. Al recorrerlo, el orden puede cambiar entre ejecuciones, así que si la salida tiene que ser estable hay que ordenar explícitamente con sortedArrayUsingSelector:.

Para que un objeto propio funcione en un conjunto hay que implementar tanto isEqual: como hash, y de forma coherente: dos objetos iguales deben dar el mismo hash. Implementar solo uno de los dos produce un fallo muy desconcertante — el objeto se mete en el conjunto y luego no se encuentra.

La razón de peso para usarlo es la velocidad: comprobar la pertenencia es prácticamente instantáneo, mientras que en un array crece con el tamaño. Existe además NSOrderedSet, que conserva el orden de inserción sin admitir duplicados.

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