Messaging sends a message to an instance, and the runtime uses the Objc_msgsend function to send it. Each class has a pointer to his super class, with a dispatch table that points to the address of each method. Each instance (from NSObject or nsproxy) has a pointer to Isa, which points to his class. Runtime goes back up until it finds the method that was called and then executes. Two hidden parameters are passed in the executed method Self:message Receiver_cmd: The selector of the current method
dynamically add a method Resolveinstancemethod can dynamically add instance methods, Resolveclassmethod can dynamically add class methods dynamically load nsbundle message forwarding If Forwardinvocation is implemented, this interface is called when the object sends a message that does not exist, where it can be forwarded to other objects for processing.
OBJECT-C Runtime Programming Guide Learning Notes