(一)动态方法决议 案例如下 创建一个LGTeacher类,声明一个say666方法,方法不实现 unrecognized selector 经...
分析lookUpImpOrForward源码流程 1.方法流程汇编当objc_msgSend 快速查找找不imp时 会调用MethodTable...
方法本质和objc_msgSend 汇编源码分析 objc_msgSend(recevier, _cmd) 1:判断 recevier(消息接收...
了解编译时和运行时 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这...
一.cache_t数据结构分析 类的底层结构有 isa,superclass,cache,bits, 现在来结节一下cache_t的内部结构 在...
类的结构分析 根据底层继承找到 objc_classimage.png obj_class 里面成员变量 isa, superclass,cac...
一.类的继承结构探索 以下面列子lldb 输出来探索 从分析isa的结构体可以得出x86的掩码是0x00007ffffffffff8和isa与上...
一.了解clang Clang是⼀个C语⾔、C++、Objective-C语⾔的轻量级编译器。源代码发布于BSD协议下。Clang将⽀持其普通l...
一.先了解c和oc不同类型所对应字节如下图 二.了解内存对齐规则 *1:数据成员对⻬规则:结构(struct)(或联合(union))的数据成员...