Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: super respondsToSelector




On 30 May '08, at 11:22 PM, Russ McBride wrote:

Anyone want to take a stab at explaining to me as thoroughly as possible why
[super respondsToSelector: aSelector]
doesn't actually do what it looks like it should do?

Sure. "super" does not mean "my superclass". It means "self, but start looking for method implementations in my superclass".


The purpose of "super" is to give you a way to call the inherited version of a method you've overridden, since there would otherwise be no way of doing so. The actual receiver of the method that's called via "super" is self, since "super" only changes the way in which methods are looked up.

Since your class didn't override -respondsToSelector:, the implementation you get when you user "super" is the same as the normal one you'd get if you called it on self, i.e. the implementation in NSObject. And since the receiver is self, not some hypothetical instance of your superclass, you get the same result as if you'd called [self respondsToSelector:].

If you actually want to ask a question of your class's superclass, you have to do so directly:
[[[self class] superclass] instancesRespondToSelector: aSelector]


—Jens

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden

References: 
 >super respondsToSelector (From: Russ McBride <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.