什么是method swizzling?

其实跟字面的意思很相近。方法的调和。可以去修改oc中两个方法的调用。

这张图看起来会比较形象

什么是method swizzling?_第1张图片
20130718230430859.png

就是把两个实现调换
具体的做法,
首先,用Categroy建立自己的方法。
在+load方法中去实现方法交换的代码(load可以保证被调用,其他方法都不靠谱)

        Method ori_Method =  class_getInstanceMethod([MYclass class], @selector(lastObject));  
        Method my_Method = class_getInstanceMethod([MYclass class], @selector(myLastObject));  
        method_exchangeImplementations(ori_Method, my_Method);

一定要记住,你的方法实现已经变了。

你可能感兴趣的:(什么是method swizzling?)