01-OC对象的本质

OC是通过C/C++的什么数据结构实现我们的OC对象呢

结构体--OC对象的本质就是C/C++的结构体
使用clang

xcrun xc是xcode

Class是一个指向结构体的指针在32位中占4个字节 在64位中占8个字节

截屏2019-12-05上午9.45.25.png

这个代码是给结构体分配存储空间,因为现在这个结构体里就一个成员,Class,Class是一个指针,所以这个对象的内存是暂时认为是8个字节

截屏2019-12-05上午9.52.16.png

创建完对象并且给这个对象分配完存储空间之后

我们要通过obj指针指向这个对象,

需要把isa指针的地址赋值给obj指针

截屏2019-12-05上午9.55.23.png

那刚刚我们假设是8个字节,其实是16个字节

截屏2019-12-05上午10.19.43.png

我们分析一下源码,第三步中可以看出是成员变量所占的大小

截屏2019-12-05上午10.30.31.png

你可能感兴趣的:(01-OC对象的本质)