Objective-C弱引用对象存储与释放机制分析

在 Objective-C 中,弱引用对象的存储和释放由 SideTableweak_tableweak_entry_t 结构协同管理。

当创建弱引用时:

  1. 系统通过对象的地址查找对应的 SideTable
  2. SideTable 中的 weak_table 会根据被引用对象的地址查找或创建对应的 weak_entry_t 结构。
  3. weak_entry_t 结构中存储了指向所有弱引用该对象的指针。

当对象被销毁时,系统会根据对象的地址找到对应的 SideTableweak_entry_t 结构,并将该结构中所有指向该对象的弱引用指针置为 nil

mp4 文件大小:109.16MB