美文网首页
ios Runtime理解

ios Runtime理解

作者: piggybear | 来源:发表于2021-11-25 09:11 被阅读0次

    Runtime 是 Objective-C 区别于 C 语言这样的静态语言的一个非常重要的特性。对于 C 语言,函数的调用会在编译期就已经决定好,在编译完成后直接顺序执行。但是 OC 是一门动态语言,函数调用变成了消息发送,在编译期不能知道要调用哪个函数。所以 Runtime 无非就是去解决如何在运行时期找到调用方法这样的问题。

    OC 的消息机制

    OC中的方法调用其实都是转成了objc_msgSend函数的调用,给receiver(方法调用者)发送了一条消息(selector方法名)
    objc_msgSend底层有3大阶段,消息发送(当前类、父类中查找)、动态方法解析、消息转发

    runtime具体应用

    利用关联对象(AssociatedObject)给分类添加属性
    遍历类的所有成员变量(修改textfield的占位文字颜色、字典转模型、自动归档解档)
    交换方法实现(交换系统的方法)
    利用消息转发机制解决方法找不到的异常问题
    KVC 字典转模型

    相关文章

      网友评论

          本文标题:ios Runtime理解

          本文链接:https://www.haomeiwen.com/subject/cgjntrtx.html