He estado trabajando bajo la suposición de que NSSet usó hash para buscar coincidencias potenciales, y luego llamé a isEqual para cada una de ellas para verificar colisiones reales, pero me di cuenta de que no podía encontrar ninguna evidencia que respaldara esto.¿Utiliza NSSet hash para definir la exclusividad?
El motivo por el que lo menciono es la existencia del método "miembro:" en NSSet. ¿Por qué la documentación para miembros: se desvía de especificar que Equal: se usa para encontrar su objeto cuando nada más en NSSet lo hace? Does containsObject: solo usa el hash o algo?
¿Alguien puede confirmar este comportamiento? ¿E idealmente, documentación de referencia sobre esto?
Debería haber mencionado que lo leí, así como la documentación relevante de NSSet. Sin embargo, si realmente lo lees, notarás que nunca dice nada sobre si se usa "isEqual", solo que los objetos deben implementarlo. Dado que debe implementar isEquals: si implementa hash, ese mismo consejo se aplicaría incluso si todo NSSet realmente utilizado fuera hash. Lo interesante es que solo advierten contra el hash y la mutabilidad. Si usaran Equal, uno pensaría que la misma advertencia se aplicaría allí. – DougW