240 发简信
IP属地:广东
  • Resize,w 360,h 240
    九、消息流程之动态决议

    在消息经过慢速查找之后还没有找到,就会走到resolveMethod_locked进行消息动态决议,看一下resolveMethod_locke...

  • Resize,w 360,h 240
    八、消息流程之慢速查找

    在Object-C中调方法在底层就是调objc_msgSend进行发送消息,消息发送时先在Class的cache中查找imp,这一步为快速查找,...

  • Resize,w 360,h 240
    七、消息流程之快速查找

    1、方法调用本质 如下图中展示的对象调用方法,在底层是怎么调的呢: 为了探索这个问题,用clang将main.m文件编译为C++文件,指令为:c...

  • Resize,w 360,h 240
    六、类原理之cache

    我们先来回顾一下objc_class的几个主要的结构,如图: 主要是有4个变量:ISA、superclass、cache、bits,其中isa和...

  • Resize,w 360,h 240
    五、类原理之bits

    1、指针平移 在介绍类的内存结构之前先介绍一下指针平移,在后面会用到相关知识。 这张图的意思呢就是定义一个整型数组 ,里面的元素分别为 , , ...

  • Resize,w 360,h 240
    四、类原理之isa

    1、Class底层结构分析 在联合体和ISA一篇文章中介绍了对象的Class方法其实是获取对象的isa.shiftbits,那么Class对应的...

  • Resize,w 360,h 240
    三、对象原理之类绑定

    1、联合体位域 在对象原理一[https://www.jianshu.com/p/a6ed5aafeb36]的一文中研究了结构体大小,可以看出不...

  • Resize,w 360,h 240
    二、Flutter中Key的作用

    在Flutter中每个Widget的构造方法都提供了一个可选参数Key,这个Key有什么用呢? 1、案例 现在看一个小小的Demo,这个Demo...

  • Resize,w 360,h 240
    一、渲染原理

    主要是通过底层源码来分享一下Flutter是怎么渲染的。 1、Widget树 树是一种数据结构,Widget树就是存储Widget的树结构。Wi...