Erik, an NSInvocation encapsulates the method signature, not just the selector. A selector is just the name of a message, but doesn't include the types of the arguments and the return value. A signature does include those types.
However, if a class is forwarding a message that it doesn't itself implement, the runtime only knows the name, not the types. So, it has to ask the class doing the forwarding for the method signature in order to have all the information it needs.
by Ken — May 21
However, if a class is forwarding a message that it doesn't itself implement, the runtime only knows the name, not the types. So, it has to ask the class doing the forwarding for the method signature in order to have all the information it needs.