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 (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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to