It should work the way you've done it in a NSDictionary. 

Yes the numbers created by +numberWithUnsignedInteger: are distinct objects 
(normally, if I use low numbers they actually aren't, one of Cocoa's little 
optimizations I guess), however they compare as equal with isEqual: or 
isEqualToNumber:

NSDictionary uses isEqual: so it should find it with no issue. I just threw 
together a 10 line program which does that, puts an entry into a dictionary 
keyed on an NSNumber representation of an NSUInteger and gets it out with 
another distinct NSNumber of the same NSUInteger, it finds it. I did also test 
in that case that the two NSNumbers were distinct, they were. 

On 29-Oct-2010, at 7:29 PM, Graham Cox wrote:

> I have a need to associate objects with an arbitrary unsigned integer, which 
> can be pretty much anything. I figured a dictionary with NSNumbers as keys 
> would be perfect, where the NSNumber is created using 
> +numberWithUnsignedInteger:
> 
> Trouble is, each time I create the number, it's a new object even if it 
> contains a value NSNumber has seen before, so the lookup fails.
> 
> So, I thought I'd just create suitable static NSNumbers, but I have the same 
> problem in another place, since I then need to know which static NSNumbers 
> I've allocated already to a given integer, which means looking them up. While 
> I could just add them to an array and conduct a linear search - for the 
> current situation efficiency isn't likely to be an issue - this solution 
> wouldn't scale very well if it ever needed to.
> 
> Is there an obvious alternative I'm overlooking?
> 
> --Graham
> 
> 
> _______________________________________________
> 
> 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/rols%40rols.org
> 
> This email sent to r...@rols.org

_______________________________________________

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