Am 26.03.2011 um 14:57 schrieb Mike Abdullah:


To be more detailed: my custom class and its subclasses are wrapper classes containing file informations. They are based on FSRef rather than using paths - I do a lot of lengthy iterations so paths are much too fragile. I also heavily use NSSet to store instances, and I wanted -isEqual: to be as fast as possible. So I thought I could just return a unique hash value for each custom class and return (FSCompareFSRefs (&ownRef, &otherRef) == noErr) for -isEqual:, thus avoiding the need to *first* compare the objects' classes.

This is pretty much what NSSet will be doing for you. It uses -hash to narrow down possible matches, before calling -isEqual: only on those that share a hash.
This was about the only point that was evident to me :-)

You should find this plenty enough fast enough if your hash values actually are unique.
This was the reason for my silly question. I know my app will only add instances of appropriate classes to the sets, but nevertheless I want to do it the right way.

If not, about the only optimization from there is a NSHashTable or CFSet setup to test equality on -hash.

Could you point me to a documentation that could help me understand NSHashTable?

Thanks again, Mike.

Cheers,
Peter
_______________________________________________

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 arch...@mail-archive.com

Reply via email to