It’s doing a pointer comparison while making poor assumptions about how the compiler will optimize the storage of string constants. This is bad; DO NOT DO THIS.
Dan > On Sep 21, 2016, at 4:44 PM, Gabriel Zachmann <z...@tu-clausthal.de> wrote: > > I've got a stupid, curious question regarding a code snippet that I have > found on the net (I tried it, it works). > > Here is the code snippet: > > - (void) observeValueForKeyPath: (NSString *) keyPath ofObject: (id) object > change: (NSDictionary *) change context: (void *) > context > { > if ( context == (__bridge void *) @"mediaLibraryLoaded" ) > { > // ... > > > My question is: how can the compiler know that '==' in this case is a > NSString comparison? > Or is some other magic going on here? if so, which? > Does the compiler know it should perform some kind of dynamic method dispatch? > > > Thanks a million for all kinds of enlightenment. > > Best regards, > Gabriel. > > > > > > > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/dstenmark%40opentable.com > > This email sent to dstenm...@opentable.com _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com