Another way to do it is to use CFDictionaryRef and use the integers directly.

NSInteger type;

dateFormatterStorage = CFDictionaryCreateMutable( kCFAllocatorDefault, 0, 0, 
&kCFTypeDictionaryValueCallBacks );
formatter = (NSDateFormatter*)CFDictionaryGetValue( dateFormatterStorage, 
(void*)type);
CFDictionarySetValue( dateFormatterStorage, (void*)type, formatter );

Perfectly legal and something recommended to us at one of the performance talks 
at WWDC.

On Oct 29, 2010, at 6:29 AM, 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/alex%40webis.net
> 
> This email sent to a...@webis.net

Alex Kac - President and Founder
Web Information Solutions, Inc.

"Champions aren't made in the gyms. Champions are made from something they have 
deep inside of them - a desire, a dream, a vision. They have last-minute 
stamina, they have to be a little faster, they have to have the skill, and the 
will. But the will must be stronger than the skill." 
-- Muhammad Ali





_______________________________________________

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