从 objc_object、objc_class、cache_t、class_ro_t、class_rw_t 到 objc_msgSend 快慢路径和消息转发,系统拆解 Runtime 底层链路。
标签: Runtime
共 8 篇文章
深入拆解 isa 链、superclass 链、non-pointer isa、SideTable、weak_table、weak 释放逻辑、Tagged Pointer、类对象、元类对象和 cache_t 的底层设计。
从 Category 编译产物、运行时合并、方法查找顺序、关联对象全局表和对象内存布局解释为什么 Category 能加方法不能加 ivar。
从 IMP 交换、方法缓存、+load 风险、KVO 动态子类、isa-swizzling 和工程治理深入讲解 Runtime 动态能力。
从对象内存、nonpointer isa、引用计数、SideTable 和 weak 清零流程串联 Objective-C Runtime 内存模型。
Method Swizzling 的本质是在 Runtime 运行时,修改 `objc_class` 结构体中 `method_list` 里的映射关系。
从对象内存布局、Category 元数据和关联对象全局表,解释分类为什么不能添加实例变量。
熟悉 objc-runtime 源码、ARM64 汇编、指针位操作