美文网首页
iOS相关知识(十)-- weak

iOS相关知识(十)-- weak

作者: 奋斗的小马达 | 来源:发表于2021-11-05 10:45 被阅读0次

    weak的基本使用

    weak是弱引用,当一个对象被weak修饰的时候,这个对象的引用计数并不会增加,且这个对象被释放的时候weak会将指针自动置为nil。weak还可以解决循环引用的问题

    weak的原理

    runtime维护了一张weak表,用于存放对象的weak指针地址数组,这张weak表也就是哈希表,weak指针指向的对象地址作为key值,value是weak指针地址数组

    初始化的时候:runtime会调用initweak函数 然后初始化一个weak指针地址,
    添加引用的时候:runtime会点用storeweak函数 然后更新这个weak指针地址并创建一张weak表
    移除的时候:runtime会调用clearDealocating函数 然后会根据对象的地址找到这个对象的weak指针数组 然后遍历这个数组将数据置为nil,最后从weak表中移除这个记录

    相关文章

      网友评论

          本文标题:iOS相关知识(十)-- weak

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