iOS底层提升方案
下方学习大纲大家可以参考学习《OC底层、核心编程探索》专栏的索引。
OC底层探索
-
OC对象占用内存原理
-
OC对象 最少占用 16 个字节内存.
当对象中包含属性, 会按属性占用内存开辟空间. 每一行 16 个字节中, 剩余内存如果可以放下剩余其中一个属性 (参考倒数第二张图) , 则会在行末存储 (注意: 并非一定是按照定义顺序来开辟空间, 放不下就开辟这样). 放不下时会重新开辟一行存储.
最终满足 16 字节对齐标准.
Runtime & 环境搭建
-
objective C语言把能在编译期做的事情就推迟到运行期再决定。这就意味着,Objective C不仅需要一个编译器,而且需要一个运行期环境。这个运行期环境就是Runtime。
-
runtime源码目录结构
-
include 文件夹是我们引入的项目需要的依赖文件
-
Private Headers 从字面意思了解,是私有的一些方法
-
Project Headers runtime项目中会用到的头文件
-
Obsolete Headers 一些孤立的文件,大部分可删,只有hashtable2.h的文件会被其他文件使用到。
-
Obsolete Source 无实质用处,可全删
-
Source目录,是runtime的实现文件集合,后面的文章主要是研究这个目录。