Re: Stupid objective-c question
Re: Stupid objective-c question
- Subject: Re: Stupid objective-c question
- From: Daniel Stenmark <email@hidden>
- Date: Wed, 21 Sep 2016 23:56:08 +0000
- Thread-topic: Stupid objective-c question
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 <email@hidden> 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 (email@hidden)
>
> 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:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden