Skip navigation.
 
mlRe: How Do Classes Respond to performSelector?
FROM : Quincey Morris
DATE : Wed Jan 30 22:53:09 2008

On Jan 30, 2008, at 13:14, Francisco Tolmasky wrote:

> This is just a question out of curiosity.  In the developer docs, 
> only - (id)performSelector: is defined.
> So I was going to write my own + (id)perfromSelector, but first 
> figured I'd check whether there was
> one already by writing up a quick test in XCode - which it turns out 
> there is (saved me the work).
> I figured it must just not be in the documentation, so I was going 
> to file a bug on the developer docs...
> Yet, doing a classdump on Foundation.framework doesn't show + 
> performSelector either (only on
> NSProxy, not on NSObject).  Is there some magic going on?  Is 
> +performSelector actually not defined
> on NSObject and this is getting forwarded to NSProxy or something? 
> Or is this just a case of under
> documentation and class dump not telling the whole truth?
>
> Thanks,
>
> Francisco


Someone already gave you the answer, but here's the money quote from 
the documentation, if you want to follow it up. From Cocoa Design 
Fundamentals/Cocoa Objects/The Root Class:

"Instance and Class Methods

"The runtime system treats methods defined in the root class in a 
special way. Instance methods defined in a root class can be performed 
both by instances and by class objects. Therefore, all class objects 
have access to the instance methods defined in the root class. Any 
class object can perform any root instance method, provided it doesn’t 
have a class method with the same name.

"For example, a class object could be sent messages to perform 
NSObject’s respondsToSelector: and performSelector:withObject:instance 
methods:
   SEL method = @selector(riskAll:);
   if ([MyClass respondsToSelector:method])
       [MyClass performSelector:method withObject:self];"

An earlier paragraph states that NSObject and NSProxy are the two 
Cocoa-supplied root classes.

Related mailsAuthorDate
mlHow Do Classes Respond to performSelector? Francisco Tolmasky Jan 30, 22:14
mlRe: How Do Classes Respond to performSelector? Peter Ammon Jan 30, 22:36
mlRe: How Do Classes Respond to performSelector? Quincey Morris Jan 30, 22:53