美文网首页
学习笔记-weak和unowned使用时究竟怎么选择?

学习笔记-weak和unowned使用时究竟怎么选择?

作者: 最晴天 | 来源:发表于2022-01-14 16:21 被阅读0次

    学习路上的疑惑
    为什么在看过一些博客或是文档后,过上一两天,也可能是半天就忘记了呢?
    反思后,我意识到有两个方面的问题:一是没有进行实践,多敲代码,是学习的唯一捷径!二是没有总结归纳,形成自己的知识体系!
    so,开始我的学习笔记之路。
    文笔粗略,请多多宽宥~

    unowned 修饰的对象,被释放后,将指向一块垃圾内存,此时,再次使用它,将会引起崩溃
    而weak修饰的对象1.被释放后,值为nil,此时,再次使用它,并不会引起程序错误;2.当其最后一个强引用被释放的时候,与其相关的资源也会被释放

    那么在解决引用循环时,是不是使用weak更好呢?
    No!
    weak修饰的对象,在使用时,需要进行判断 该对象是否为nil
    在确定object和它的父类,拥有相同的生命周期时,使用unowned更好,这样当object被释放的时候,其父类一定也被释放了,不会发生object被释放后,会再次使用它的问题。
    当object与使用它的地方,生命周期不同时,使用weak更合适

    参考文章:
    https://swift.gg/2017/05/16/unowned-or-weak-lifetime-and-performance/

    相关文章

      网友评论

          本文标题:学习笔记-weak和unowned使用时究竟怎么选择?

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