Runtime(动态添加方法)笔记
来源:互联网 发布:淘宝海尔官方旗舰店 编辑:程序博客网 时间:2024/05/16 05:14
OC采用的是懒加载机制,只要一个方法实现了,就会添加到方法列表中占用内存。而很多时候,很多功能在某些用户那里是很少用到的,比如腾讯的xx会员,你不充值,是无法使用会员提供的服务的。这种情况下,可以考虑使用Runtime动态添加方法。
Demo链接
- ViewController.m
- (void)viewDidLoad { [super viewDidLoad]; TestModel *testModel = [[TestModel alloc] init]; //performSelector在动态添加方法时使用 [testModel performSelector:@selector(write:) withObject:@"动态添加方法测试"];}
- TestModel.m:创建TestModel用于Runtime测试动态添加方法
#import "TestModel.h"#import <objc/message.h>//用于导入Runtime@implementation TestModelvoid writeChange(id self,SEL _cmd,NSString *str){ NSLog(@"测试动态添加方法:%@",str);}//只要一个对象调用了一个未实现的方法就会调用这个方法进行处理,用于动态添加方法时,处理未实现方法+ (BOOL)resolveInstanceMethod:(SEL)sel{ //找到未实现的方法 if (sel == NSSelectorFromString(@"write:")) { /** * 动态添加方法 * 参数1 添加方法的类 * 参数2 添加哪个方法 * 参数3 方法实现,替换方法(其实是函数) * 参数4 方法类型,参考文档 Type Encodings */ class_addMethod(self, sel, (IMP)writeChange, "v@:@"); return YES; } return [super resolveInstanceMethod:sel];}@end
- 运行效果
1 0
- Runtime(动态添加方法)笔记
- Runtime-动态添加方法
- runtime - 方法动态添加
- runtime - 动态添加方法
- runtime实战(二)动态添加方法
- 【Runtime】动态添加方法demo
- 动态添加属性(Runtime)
- ios runtime 动态向类添加方法
- runtime给现有类动态添加方法
- Runtime的使用7 【动态添加方法】
- runtime之动态添加方法(动态决议,请求转发)
- runtime 动态添加方法实现方法懒加载
- iOS (Category)runtime动态添加属性
- Runtime(动态添加属性)学习
- runtime动态添加属性
- Runtime 动态添加属性
- runtime -- 动态添加属性
- Runtime-动态创建类添加属性和方法
- Mac终端配色方案【转】
- js中的函数劫持
- Dockerfile使用详解
- dataTablas Ajax分页 ThinkPHP
- oracle中char与varchar2的区别
- Runtime(动态添加方法)笔记
- 七大排序之堆排序
- 【中国标准】 DRA音频标准是什么概念?
- 润乾报表制作折叠报表
- C++幼儿园[0] - 前言
- ContextLoaderListener类(spring源码解析)
- 排序算法之希尔排序(Java)
- 类的析构函数
- debug模式下无法查看变量值