什么是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
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C#抽象类与抽象方法--就是类里面定义了函数而函数里面什么都没有做的类
- 【读书笔记】你不知道的JavaScript(上卷)--作用域是什么
- 开发Python用什么工具好?
- 什么是库(library)
- 什么是全栈开发者
- Aspects 是什么,解决了什么问题?
- Java中什么方法导致线程阻塞
- 互动直播与激进直播的区别是什么
- FAE是什么?
- 什么是编程?什么是软件开发?
- 善知识开示:我时常口干舌燥,咽喉、食道、胃都不舒服,不知是什么原因该忏悔什么?
- web前端主要学什么?
- VC的IDE在编译链接时做了些什么--- 逆向工程写自己的vcspawn
- 商业项目应该向开源项目学习什么?
- XHTML与HTML区别是什么?
- 什么是机器学习?
- “游戏引擎”究竟是什么
- SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?
- ibatis与hibernate有什么区别啊?
- Apache Shiro 是什么?