iOS底层-方法查找

一、慢速查找流程(递归流程):lookupimp lookupimpforward
1、自己的Methodist sel=imp
2、父类->NSObject->nil->跳出来

二分查找法

二、快速查找流程

pragma clang diagnostic push

// 让编译器忽略错误

pragma clang diagnostic ignored "-Wundeclared-selector"

    LGStudent *student = [[LGStudent alloc] init];
    // 对象方法
    [student sayHello];
    [student sayNB];

// [student sayMaster];

    [LGStudent performSelector:@selector(sayEasy)];

pragma clang diagnostic pop

1、方法没有 慢速递归查找 cache查找 ->nil
2、崩溃
3、返回一个imp trycache
4、共享缓存再找一遍lookupimpforward
5、系统发送resove_sel

1: 苹果给的一次机会
2: 全局 所有方法找不到 我们是不是都能监听
3: lg_model_traffic -> lg_home_didClickDetail -> pop home -> 后台发送消息 didClickDetail -> 监控 改BUG
4: runtime ->
5: aop - oop
6: 对象分工是非常明确 - 冗余代码 -> 提取 -> 公共的类 (强依赖 - 强耦合)
7: 无侵入 - 动态 注入代码 - 切入的方法 切入的类
8: 性能消耗 + 苹果写转发流程就没有意义
9: 消息转发流程 : 快速 + 慢速转发

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容