iOS知识复习笔记(2)---weak相关
2023-01-09 本文已影响0人
焦下客
weak相关总结
1.weak是底层runtime维护了一张weak_table_t结构的hash表,key是所指向对象的地址,value是weak指针的地址数组。
2.weak关键字的作用是弱引用,所以引用对象的计数不会加1,并在引用对象释放的时候会自动被设置为nil。
3.对象释放时,调用clearDeallocating 函数根据对象地址获取所有weak指针地址数组,然后遍历这个数组把其中的数据设置nil,最后把这个entry从weak表中删除,最后清理对象的记录。
4.其中SideTable、weak_table_t、weak_entry_t三个结构体他们的之间的关系图如下: 关系图