您的位置:首页 > 其它

什么是method swizzling

2020-01-15 11:52 405 查看

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

转载于:https://www.cnblogs.com/starainDou/p/5246358.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
ad4576690 发布了1 篇原创文章 · 获赞 1 · 访问量 1459 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: