汕尾旅游
Posted on
Objc类结构分析
Objc类结构分析
objc_class & objc_object
objc_class
是个结构体,所有的Class
都是以它为模版创建的,以下是底层定义的一部分:
1 | struct objc_class : objc_object { |
Objc类与isa
Posted on
In
Objc
类与isa关联原理
Objc对象的本质
oc定义的类在经过Clang
编译转为C++后,我们就可以看到oc中的类实际上是结构体,如下:
1 | // NSObject的定义 |
上面转译出来的代码中,可以看到TestClass
结构体里面包含它所继承的NSObject
的完整结构。而oc对象的本质其实就是结构体,子类中包含完整的父类结构体,从而达到继承的目的。
Objc底层Alloc流程
Objc底层 alloc流程记录
引用Objc开源版本为906.2
1. callAlloc
1 | static ALWAYS_INLINE id |
slowpath
和fastpath
为__builtin_expect
为0和为1对应的宏定义,目的是告诉编译器输入参数为false或true的概率较大,减少指令跳转。