码迷,mamicode.com
首页 > 其他好文 > 详细

什么是method swizzling

时间:2016-03-06 01:19:46      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:

其实跟字面的意思很相近。方法的调和。可以去修改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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

什么是method swizzling

标签:

原文地址:http://www.cnblogs.com/starainDou/p/5246358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!