什么是method swizzling

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

这张图看起来会比较形象


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);

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

 

starain Dou 豆电雨

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文/natewang(简书作者)
原文链接:http://www.jianshu.com/p/1bbd5bbab267
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

posted @ 2016-03-06 00:12  starainDou  阅读(290)  评论(0编辑  收藏  举报