Junior — Middle
¿Cuáles son los criterios principales que un objeto debe cumplir para ser añadido correctamente a la colección Set?
sobes.tech AI
Respuesta de la IA
Para agregar correctamente un objeto a una colección Set (por ejemplo, NSSet en iOS), el objeto debe:
-
Implementar correctamente y de manera coherente los métodos
-hashy-isEqual:.-hashdebe devolver el mismo valor para objetos considerados iguales.-isEqual:debe determinar con precisión la igualdad de objetos.
-
Ser inmutable en los campos que participan en el cálculo del hash y en la comparación, mientras el objeto esté en el Set. De lo contrario, se violará la integridad de la colección.
Por ejemplo, si creas una clase para almacenarla en NSSet, sobrescribe estos métodos:
- (NSUInteger)hash {
return self.identifier.hash;
}
- (BOOL)isEqual:(id)object {
if (self == object) return YES;
if (![object isKindOfClass:[MyClass class]]) return NO;
return [self.identifier isEqual:((MyClass *)object).identifier];
}
Esto garantiza que el Set determinará correctamente la unicidad de los objetos.