• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: When do I need to override hash?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: When do I need to override hash?


  • Subject: Re: When do I need to override hash?
  • From: Bryan Henry <email@hidden>
  • Date: Thu, 20 Aug 2009 16:30:22 -0400

Why do you say that? I haven't noticed any documented requirement that ties the implementation details of -hash and -isEqual together.

- Bryan

Sent from my iPhone

On Aug 20, 2009, at 4:27 PM, Clark Cox <email@hidden> wrote:

On Thu, Aug 20, 2009 at 12:33 PM, David Duncan<email@hidden> wrote:
On Aug 20, 2009, at 12:00 PM, Seth Willits wrote:

Returning 0 is certainly simpler :p


It is, but you can generally do better than just returning 0, usually by
just extracting some bits from 'self', ala


-(NSUInteger)hash
{
       uintptr_t hash = (uintptr_t)self;
       return (hash >> 4);
}

This satisfies the condition of hash (two equal objects will have the same
hash code)

No it doesn't. Writing the hash method like that basically prevents you from having an isEqual that does anything other than a pointer comparison.

--
Clark S. Cox III
email@hidden
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: When do I need to override hash?
      • From: Shawn Erickson <email@hidden>
    • Re: When do I need to override hash?
      • From: Clark Cox <email@hidden>
    • Re: When do I need to override hash?
      • From: Clark Cox <email@hidden>
References: 
 >When do I need to override hash? (From: Gideon King <email@hidden>)
 >Re: When do I need to override hash? (From: Nathan Vander Wilt <email@hidden>)
 >Re: When do I need to override hash? (From: Gideon King <email@hidden>)
 >Re: When do I need to override hash? (From: "Adam R. Maxwell" <email@hidden>)
 >Re: When do I need to override hash? (From: Seth Willits <email@hidden>)
 >Re: When do I need to override hash? (From: David Duncan <email@hidden>)
 >Re: When do I need to override hash? (From: Clark Cox <email@hidden>)

  • Prev by Date: Re: Core Data dog-slow when using first time after boot
  • Next by Date: Re: When do I need to override hash?
  • Previous by thread: Re: When do I need to override hash?
  • Next by thread: Re: When do I need to override hash?
  • Index(es):
    • Date
    • Thread