美文网首页
记一次iOS循环引用

记一次iOS循环引用

作者: woaiyouxi | 来源:发表于2018-11-28 17:25 被阅读10次

    记一次项目中其他人写的控制器中的循环引用。
    写代码注重质量,发现问题当然想如何解决。
    记录一次情形和解决方法,提升效率。


    情形

    Controller在第一次退出时,不执行dealloc方法。而第二次进入时,却执行了dealloc方法。

    原因

    Controller通过block获取地理信息,同时又将单例持有block,导致Controller不释放。
    当第二次进入时,重新设置了单例block,故执行前一个Controller的dealloc方法。

    解决

    获取地理信息后,主动将单例持有的block=nil,打破循环。

    总结

    当出现类似的循环引用时,可往单例的强引用考虑。

    相关文章

      网友评论

          本文标题:记一次iOS循环引用

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