iOS面试题:weak修饰的释放则自动被置为nil的实现原理

  • Runtime维护着一个Weak表,用于存储指向某个对象的所有Weak指针

  • Weak表是Hash表,Key是所指对象的地址,Value是Weak指针地址的数组

  • 在对象被回收的时候,经过层层调用,会最终触发下面的方法将所有Weak指针的值设为nil。* runtime源码,objc-weak.m 的 arr_clear_deallocating 函数

  • weak指针的使用涉及到Hash表的增删改查,有一定的性能开销.


更多:iOS面试题合集

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

推荐阅读更多精彩内容