On Sat, Aug 23, 2008 at 7:41 AM, Graham Cox <[EMAIL PROTECTED]> wrote:
> I have a class for which equality can be defined as having the same internal
> string value (which happens to be a UUID-turned-string). I can easily
> implement isEqual: based on that but the docs say I also need to implement
> -hash. Any pointers on what is a good way to do that? Could I just safely
> defer to the -hash returned by the string in question?

The implementation of -hash should *always* match the implementation
of -isEqual:.

If you compare primitives in -isEqual:, you should combine them (using
xor or the like) in -hash. If you compare objects by calling -isEqual:
on them, you should combine their hashes (using xor or the like). If
you do some of each, combine them all. If you compare only one thing
for equality, return it (if it's a primitive) or its hash value (if
you call isEqual: on it).

Mike
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to