IOS 动态添加方法

来源:互联网 发布:centos aria2 安装 编辑:程序博客网 时间:2024/06/17 07:56

动态添加方法

使用场景:一个类方法非常多,一次性加载到内存,比较耗费资源

为什么动态添加方法? OC都是懒加载,有些方法可能很久不会调用

电商,视频,社交,收费项目:会员机制,要会员才拥有这些功能


定义C函数

void eat(idself,SEL sel){

    NSLog(@"eat--------");

}


重写 +(BOOL)resolveClassMethod:(SEL)sel

+(BOOL)resolveClassMethod:(SEL)sel{

   if (sel==@selector(eat)) {

       class_addMethod(self,@selector(eat), (IMP)eat,"v@:");

    }

    return [superresolveClassMethod:sel];

}


方法调用

Test *tes=[[Testalloc]initWith:@""];

    SEL select =NSSelectorFromString(@"eat");

    [TestresolveClassMethod:select];

    [tesperformSelector:@selector(eat)];


0 0
原创粉丝点击