Procedure at run time for method invocation
If an instance method is invoked with an instance object, the instance's Isa pointer points to the object (that is, the class object) operation.
If a class method is called, it is manipulated in the object that the ISA pointer to the class object points to (that is, the meta-class object).
First, the method to invoke is found in the list of cached methods in the corresponding action object, and if found, turn to the corresponding implementation and execution.
If not found, find the method in the method list in the corresponding action object, and if found, turn to the corresponding implementation
If not found, go to the object that the parent pointer points to.
And so on, if the root class hasn't been found yet, turn to intercept call.
If there is no way to rewrite the interception call, the program error.
The above process brings me the inspiration:
Overriding the method of the parent class does not overwrite the parent class, except that the method is found in the current class object and will not be found in the parent class.
If you want to invoke the implementation of the parent class of a method that has already been overridden, simply use the Super compiler identifier, which skips the process of finding a method in the current class object at run time.
Source: http://www.cocoachina.com/ios/20150901/13173.html
iOS development-method call process at run time