Junior — Middle
Quais são os critérios principais que um objeto deve atender para ser adicionado corretamente à coleção Set?
sobes.tech IA
Resposta da IA
Para adicionar corretamente um objeto a uma coleção Set (por exemplo, NSSet no iOS), o objeto deve:
-
Implementar corretamente e de forma consistente os métodos
-hashe-isEqual:.-hashdeve retornar o mesmo valor para objetos considerados iguais.-isEqual:deve determinar com precisão a igualdade dos objetos.
-
Ser imutável nos campos que participam do cálculo do hash e na comparação, enquanto o objeto estiver no Set. Caso contrário, a integridade da coleção será comprometida.
Por exemplo, se criar uma classe para armazenar em NSSet, sobrescreva esses 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];
}
Isso garante que o Set determinará corretamente a unicidade dos objetos.