Ich überschreibe also isEquals
y hash
benutzerdefinierte Objekte zu vergleichen, um Duplikate aus einer NSArray
. Das Problem ist, dass ich einige Werte in der Liste fehlen, die keine doppelten Elemente enthält, und es scheint, dass meine hash
o isEquals
Umsetzung falsch ist. Das benutzerdefinierte Objekt ist ein Kursobjekt, das einige Variablen wie: id
y name
Ich werde den Code hier einfügen:
- (BOOL)isEqual:(id)object {
if ([object isKindOfClass:[Course self]]) {
return YES;
}
if(self == object){
return YES;
}
else {
return NO;
}
}
- (unsigned)hash {
NSString *idHash = [NSString stringWithFormat: @"%d", self._id];
return [idHash hash];
}
Dann, nach der Abfrage der Datenbank ich die Werte in einem Array und dann in einem Satz, der die doppelten Elemente wie diese entfernen sollte:
NSMutableSet *noDuplicates = [[NSMutableSet alloc] initWithArray:tempResults];
Können Sie sehen, was ich in der isEquals
o hash
Umsetzung?
Herzlichen Dank.