RunTime-消息的拦截与替换
来源:互联网 发布:网络招聘平台分析报告 编辑:程序博客网 时间:2024/05/15 00:36
1、创建一个类Person
声明一个方法:- (void)talk;
2、在vc中实例化person对象 并实现:- (void)talk2;
3、实现replace函数可以将person调用的talk替换成talk2
代码如下:
- (void)replace{ Person *man = [[Person alloc] init]; man.name = @"成龙"; SEL original = @selector(talk); SEL replacement = @selector(talk2); Method a = class_getInstanceMethod([Person class], original); Method b = class_getInstanceMethod([self class], replacement); if (class_addMethod([Person class], original, method_getImplementation(b), method_getTypeEncoding(b))) { class_replaceMethod([Person class], replacement, method_getImplementation(a), method_getTypeEncoding(a)); } else { method_exchangeImplementations(a, b); } [man talk];}
当man调用talk时实际上执行的是vc中得talk2函数
0 0
- RunTime-消息的拦截与替换
- runtime方法的替换
- Runtime的消息机制
- runtime的消息机制
- Runtime(三)方法与消息
- Objective-C与Runtime的那点事儿消息机制
- Objective-C与Runtime的那点事儿消息机制
- 网络消息的拦截
- iOS开发之深入探讨runtime机制03-runtime的方法与消息
- runTime 的消息转发机制
- iOS 简单的runtime替换方法
- Runtime 运行时:方法与消息
- iOS Runtime与消息转发机制
- OC Runtime 方法与消息传递
- RxSwift Runtime分析(利用OC消息转发实现IOS消息拦截)<原理同ReactiveCocoa>
- 消息钩子的反拦截
- 拦截combobox的wm_keydown消息
- Runtime的入门与应用之五-消息发送与转发
- Linux错误代码含义/Linux Error Code
- Java竟然有这凶残能力——多参数方法(Type... params)
- C语言sprintf与sscanf函数[总结]
- hdu 2138 How many prime numbers_Miller-Rabin算法模板
- GitHub使用教程
- RunTime-消息的拦截与替换
- 某公司3531板子调试笔记
- POJ 3295 Tautology
- log4j:ERROR Flume append() failed.(flume-ng-log4jappender-1.4.0.jar bug)
- c++模板类
- You can Solve a Geometry Problem too
- ejarmaker: jar 、java类的加密工具
- IOS APP 企业下载模式在7.1 上提示证书 问题
- EditText中imeOptions属性使用及设置无效解决