美文网首页
iOS-runtime-总结

iOS-runtime-总结

作者: 笑破天 | 来源:发表于2022-07-03 13:56 被阅读0次

    1、runtime简介
    C是面向过程的。OC是面向对象的,是C的超集,在C的基础上多了封装、继承和多态等特性。简单来说,OC比C多了面向对象+动态性。

    OC语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。OC的动态性是由runtime来支撑和实现的。

    这种特性意味着OC不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于OC来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正常的运行。这个运行时系统即Objc Runtime。Objc Runtime其实是一个Runtime库,简称运行时,是一套比较底层的纯C语言API,将数据类型的确定或方法的具体实现由编译时推迟到了运行时。平时编写的OC代码(方法调用),底层都是转换成了Runtime API(objc_msgSend)进行调用。

    2、OC的消息机制
    分三步:方法查找、动态解析、消息转发
    https://www.jianshu.com/p/7d06997b202a

    3、内存结构
    https://www.jianshu.com/p/50dc78f77741

    4、应用举例
    https://www.jianshu.com/p/dfbc30443aaf
    FlutterTextView

    5、其他
    super和weak:https://www.jianshu.com/p/48f43bfc3a0e
    NSProxy:https://www.jianshu.com/p/8f99b5ba9407

    相关文章

      网友评论

          本文标题:iOS-runtime-总结

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