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?
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
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.
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