• Runtime(动态添加方法)


    A问:  有没有使用过performSelector,什么时候使用?动态添加方法的时候使用过?怎么动态添加方法?runtime?为什么要动态添加方法?  

     

     

    B:Runtime(动态添加方法):OC都是懒加载机制,只要一个方法实现了,就会马上添加到方法列表中.

        app:免费版,收费版

        QQ,微博,直播等等应用,都有会员机制

        

    // 任何方法默认都有两个隐式参数,self,_cmd

    // 什么时候调用:只要一个对象调用了一个未实现的方法就会调用这个方法,进行处理

    // 作用:动态添加方法,处理未实现

    + (BOOL)resolveInstanceMethod:(SEL)sel

    {

        // [NSStringFromSelector(sel) isEqualToString:@"eat"];

        if (sel == NSSelectorFromString(@"run:")) {

            // eat

            // class: 给哪个类添加方法

            // SEL: 添加哪个方法

            // IMP: 方法实现 => 函数 => 函数入口 => 函数名

            // type: 方法类型

            class_addMethod(self, sel, (IMP)aaa, "v@:@");

            

            return YES;

        }

        

        return [super resolveInstanceMethod:sel];

     

    }

     

  • 相关阅读:
    Linux文件及目录查找
    英语单词independent
    英语单词omitting
    英语单词deploy
    英语单词debug
    线程
    进程
    操作系统历史
    分布式爬虫
    爬虫基础
  • 原文地址:https://www.cnblogs.com/liuzhenjie/p/5243568.html
Copyright © 2020-2023  润新知