Thanks for the response.

The code wasn't working as I expected because I'd failed to initialise the setOfValuesForCharacteristicTypes NSMutableSet which I was using check the hashFromCharacteristicTypes before sending the hash to the dictionary.

I'd presumed it was a problem with set object thinking they weren't equal. However, Cocoa's clever enough to know when two sets are really identical; i.e. :

NSSet *Set1 = [NSSet setWithObjects:O1, O2, nil];
NSSet *Set2 = [NSSet setWithObjects:O2, O1, nil];

NSLog(@"Check = %i",[Set1 isEqual:Set2]);


Prints "Check = 1" like I'd expect it to.

Best Regards

Tim

On 15 Jan 2009, at 15:14, Benjamin Stiglitz wrote:

I'm trying to create an NSDictionary that uses key based upon the contents of a NSSet (specifically a set of NSManagedObjectID's). I'm currently at a bit loss as to how to do it. My various attempts at a hash based solution (see below) don't appear to be working.

Are you creating a map from the NSSet to something else? An NSMapTable may be more appropriate.

A note on your pasted code:
NSString *hashFromCharacteristicTypes = [NSString stringWithFormat: [[NSNumber numberWithInteger:hashInt] stringValue]];

NSDictionary keys can be any object that adheres to NSCopying, so you don’t need to convert the number to a string before placing it in the dictionary.

(In fact, you can make the set the key, but I have a feeling you probably don’t want to copy the set.)


_______________________________________________

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