Looking only at the Objective-C runtime library, when a message is sent to an object that doesn't respond to it, the runtime system gives the receiver another chance to handle the message. So, the receiver's forward::
method, if implemented, gets called. However, looking at NSObject.mm, NSObject
doesn't seem to implement forward::
.
So, how does NSObject
's forwardInvocation:
method gets called, since the only thing the runtime system calls when a forwarding is needed is forward::
? Does Foundation use objc_setForwardHandler
(runtime.h) to set a new handler that calls forwardInvocation:
whenever a message sent to a NSObject
object needs to be forwarded?
objc_setForwardHandler
unless you're running without foundation. The thread I linked to might have more information that could help you. – Solent