1,初始化时:runtime会调用objc_initWeak函数,初始化一个新的weak指针指向对象的地址。
2, 添加引用时:objc_initWeak函数会调用 storeWeak() 函数, storeWeak() 的作用是更新指针指向,创建对应的弱引用表。
3,释放时,调用clearDeallocating函数。clearDeallocating函数首先根据对象地址获取所有weak指针地址的数组,然后遍历这个数组把其中的数据设为nil,最后把这个entry从weak表中删除,最后清理对象的记录。
IOS Objective-C weak 是怎么实现的?
最新推荐文章于 2023-04-30 14:33:29 发布