美文网首页
第33条:以弱引用避免保留环

第33条:以弱引用避免保留环

作者: MrSYLong | 来源:发表于2018-10-14 16:11 被阅读4次

    对象图里经常会出现一种情况,就是几个对象都以某种方式相互引用,从而形成环。这种情况通常会泄漏内存,因为最后没有别的东西会引用环中的对象。而环里的对象会因为相互间的引用而继续存活,不被系统回收。

    避免保留环的最佳方式就是弱引用。这种引用经常用来表示“非拥有关系”。将属性声明为unsafe_unretained或weak即可。

    weak与unsafe_unretained的区别在于,系统把对象实例回收后,weak属性会自动设置为nil,而unsafe_unretained属性仍然指向那个已经回收的实例,这样可能会不安全。

    不过无论如何,只要在所指对象已经彻底销毁后还继续使用弱引用,那就依然是个bug、编程错误。

    相关文章

      网友评论

          本文标题:第33条:以弱引用避免保留环

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