美文网首页
weak原理

weak原理

作者: 星空WU | 来源:发表于2021-02-17 14:29 被阅读0次

    weak表其实是一个哈希表,key是所指对象的指针,value是weak指针的地址数组。(value是数组的原因是:因为一个对象可能被多个弱引用指针指向)

    Runtime维护了一张weak表,用来存储某个对象的所有的weak指针。

    weak原理实现过程三步骤

    1)初始化开始时,会调用objc_initWeak函数,初始化新的weak指针指向对象的地址

    2) 紧接着,objc_initWeak函数里面会调用objc_storeWeak() 函数,objc_storeWeak() 函数的作用是用来更新指针的指向,创建弱引用表

    3) 在最后会调用clearDeallocating函数。而clearDeallocating函数首先根据对象的地址获取weak指针地址的数组,然后紧接着遍历这个数组,将其中的数组开始置为nil,把这个entry从weak表中删除,最后一步清理对象的记录。

    相关文章

      网友评论

          本文标题:weak原理

          本文链接:https://www.haomeiwen.com/subject/gxnvxltx.html