美文网首页
4-4 弱引用表

4-4 弱引用表

作者: Rumbles | 来源:发表于2019-04-08 07:56 被阅读0次

weak变量你如何让添加进弱引用表里面的

id __weak obj = obj;
编译后调用 objc_initWeak(&obj1,obj);

weak_register_no_lock

通过原对象的指针到若弱饮用表当中找到原来的对象的结构

总结:一个被声明为__weak 的对象指针 经过编译 调用  objc_initWeak(&obj1,obj); 最终在 weak_register_no_lock 来进行弱引用的添加到弱饮用表里面。1.是通过hash算法 来进行位置的计算,如果对应位置已经有了。我们会将新的对象添加进数组后面,如果没有我们会创建一个新的弱饮用的数组经第0的位置 后面都值为nil

当一个被废弃 weak对象 是被如何处理的

一个对象可能会有很多弱引用的指针
weak指针会被置为nil
weak_clear_no_lock
通过weak对象的指针经过hash算法计算 得到 当前对象 所有的弱引用数组  的位置
然后for循环 置为nil

相关文章

  • 4-4 弱引用表

    weak变量你如何让添加进弱引用表里面的 当一个被废弃 weak对象 是被如何处理的

  • weak原理

    weak原理 弱引用指针添加到弱引用表。 NSObject.mm 弱引用的指针存储到弱引用表 通过哈希运算找到弱引...

  • lua-弱表

    弱表是是具有弱引用的表,如果只有弱引用,垃圾收集器会回收这些对象。弱表可以有弱键或者弱值,如果具有弱键,垃圾回收器...

  • 04内存管理

    小对象非指针类型散列表(引用计数表和弱引用表)

  • iOS的弱引用表

    下面看下上面发生了什么过程,objc_initWeak的调用栈: 1.objc_initWeak函数会调用stor...

  • 聊一聊weak

    1.聊一聊附有__weak修饰符的变量背添加到弱引用表,以及在弱引用表中删除的过程 附有__weak修饰符的变量,...

  • iOS中弱引用管理相关问题

    关于弱引用在工作和面试中都会经常遇到,那么这里我就两个问题说一下弱引用管理。 weak变量是怎样添加到弱引用表中的...

  • 内存管理-(四)弱引用表

    Q: 一个weak修饰的变量时怎么被加入到弱引用表中的?来看一个代码块: 我们先来看看objc_initWeak调...

  • iOS ,内存分布、内存管理 、isa 指针,散列表(引用计数表

    iOS ,内存分布、内存管理 、isa 指针,散列表(引用计数表,弱引用表) 内存管理方案 1.taggedPoi...

  • 内存管理-弱引用管理

    一个weak变量是怎样被添加到弱引用表当中的?可以通过弱引用对象进行哈希算法的计算,然后计算查找它对应的位置 下面...

网友评论

      本文标题:4-4 弱引用表

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