The process of changing the implementation of an existing selector. is made possible by Objective-C’s flexible runtime. With a single #import <objc/runtime.h>.
This feature has great possibilities when it comes to logging and event tracking. Please see some nice tutorials below,
* Method Swizzling
* Method Swizzling 2