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

记一次iOS循环引用

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

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


情形

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

原因

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

解决

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

总结

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

相关文章

  • iOS闭包循环引用精讲

    iOS闭包循环引用精讲 iOS闭包循环引用精讲

  • 记一次iOS循环引用

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

  • 如何在 iOS 中解决循环引用的问题

    如何在 iOS 中解决循环引用的问题 如何在 iOS 中解决循环引用的问题

  • iOS复习之Block

    iOS面试中如何优雅回答Block iOS block循环引用

  • iOS——记一次block的循环引用

    最近在做的小项目出现了一个问题。当presentViewController时内存上升(在debug naviga...

  • iOS中Timer循环引用的原因以及解决办法。

    循环引用是iOS面试当中经常会被问到的东西,而在循环引用当中,最典型的是Timer造成的循环引用,Timer为什么...

  • iOS Runtime 数据结构

    ios内存布局 内存管理方案 数据结构 ARC & MRC 引用计数 弱引用 自动释放池 循环引用 ios内存布...

  • iOS 循环引用

    关于循环引用看着3篇文章就够了,拿走不谢! 循环引用 循环引用 OC中的block OC中的block 关于 bl...

  • iOS循环引用

    以下所有内容属笔者原创, 如有雷同纯属巧合, 未经允许不得转载. 这篇内容主要讲解 定时器 中的循环引用, 常见...

  • iOS循环引用

    在iOS开发中,循环引用是个老生常谈的问题.delegate为啥使用weak修饰,block为什么需要weakSe...

网友评论

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

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