weak引用释放原理

1. objc_release

2. 因为引用计数为0所以执行dealloc

3. _objc_rootDealloc

4. object_dispose

5. objc_destructInstance

6. objc_clear_deallocating

而调用objc_clear_deallocating的动作如下:

1. 从weak表中获取废弃对象的地址为键值的记录。

2. 将包含在记录中的所有附有__weak修饰符变量的地址,赋值为nil

3. 从weak表中删除记录

4. 从引用计数表中删除废弃对象的地址作为键值的记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容