IOSAD-92 hashBasedOnKeys

IOSAD-92
Dirk Zimmermann 5 years ago
parent e3544db787
commit 71282b9c27

@ -18,4 +18,9 @@
- (BOOL)isEqualToObject:(NSObject * _Nonnull)other
basedOnKeys:(NSArray<NSString *> * _Nonnull)keys;
/**
Calculates a hash based on the given `keys`.
*/
- (NSUInteger)hashBasedOnKeys:(NSArray<NSString *> * _Nonnull)keys;
@end

@ -28,4 +28,17 @@
return YES;
}
- (NSUInteger)hashBasedOnKeys:(NSArray<NSString *> * _Nonnull)keys
{
NSUInteger prime = 31;
NSUInteger result = 1;
for (NSString *theKey in keys) {
NSObject *objSelf = [self valueForKey:theKey];
result = prime * result + objSelf.hash;
}
return result;
}
@end

@ -252,29 +252,7 @@ static NSArray *s_keys;
- (NSUInteger)hash
{
NSUInteger prime = 31;
NSUInteger result = 1;
result = prime * result + self.direction;
result = prime * result + self.attachments.hash;
result = prime * result + self.bcc.hash;
result = prime * result + self.cc.hash;
result = prime * result + self.from.hash;
result = prime * result + self.inReplyTo.hash;
result = prime * result + self.keywords.hash;
result = prime * result + self.longMessage.hash;
result = prime * result + self.longMessageFormatted.hash;
result = prime * result + self.messageID.hash;
result = prime * result + self.optionalFields.hash;
result = prime * result + self.receivedBy.hash;
result = prime * result + self.receivedDate.hash;
result = prime * result + self.references.hash;
result = prime * result + self.replyTo.hash;
result = prime * result + self.shortMessage.hash;
result = prime * result + self.to.hash;
return result;
return [self hashBasedOnKeys:s_keys];
}
- (BOOL)isEqual:(id)object

Loading…
Cancel
Save