On Mon, Jul 28, 2008 at 3:29 PM, Jonathan Hess <[EMAIL PROTECTED]> wrote: > > On Jul 28, 2008, at 11:44 AM, I. Savant wrote: > >>>> If I wanted to store an object in a dictionary and set its key as the >>>> object's memory address - how would I go about doing this? >>> >>> I'm racking my brains trying to think of a good reason to do this and am >>> drawing a blank. I can, however, think of myriad bad reasons. > > A good reason would be that you care about identity equality and not value > equality. You care that the key is the exact same instance, not that it is > an equivalent instance. (== vs isEqual:) Another reason would be that the > keys might not implement NSCopying, which NSDictionary requires.
If NSDictionary and NSSet are too restrictive in terms of how they manage your objects, use NSMapTable and NSHashTable. On 10.5 they have a nice object-oriented interface but they still allow the use of custom callbacks. For example, the NSPointerFunctionsObjectPointerPersonality constant will cause objects to be correctly retained and released but will use object identity rather than equality. NSPointerFunctions can be used to customize it further. Mike _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [EMAIL PROTECTED]
