Re: super respondsToSelector
Re: super respondsToSelector
- Subject: Re: super respondsToSelector
- From: Jens Alfke <email@hidden>
- Date: Fri, 30 May 2008 23:43:52 -0700
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:
This email sent to email@hidden