在消息经过慢速查找之后还没有找到,就会走到resolveMethod_locked进行消息动态决议,看一下resolveMethod_locke...
在Object-C中调方法在底层就是调objc_msgSend进行发送消息,消息发送时先在Class的cache中查找imp,这一步为快速查找,...
1、方法调用本质 如下图中展示的对象调用方法,在底层是怎么调的呢: 为了探索这个问题,用clang将main.m文件编译为C++文件,指令为:c...
我们先来回顾一下objc_class的几个主要的结构,如图: 主要是有4个变量:ISA、superclass、cache、bits,其中isa和...
1、指针平移 在介绍类的内存结构之前先介绍一下指针平移,在后面会用到相关知识。 这张图的意思呢就是定义一个整型数组 ,里面的元素分别为 , , ...
1、Class底层结构分析 在联合体和ISA一篇文章中介绍了对象的Class方法其实是获取对象的isa.shiftbits,那么Class对应的...
1、联合体位域 在对象原理一[https://www.jianshu.com/p/a6ed5aafeb36]的一文中研究了结构体大小,可以看出不...
在Flutter中每个Widget的构造方法都提供了一个可选参数Key,这个Key有什么用呢? 1、案例 现在看一个小小的Demo,这个Demo...
主要是通过底层源码来分享一下Flutter是怎么渲染的。 1、Widget树 树是一种数据结构,Widget树就是存储Widget的树结构。Wi...