美文网首页
iOS_关于ARC下仍然存在的内存泄漏

iOS_关于ARC下仍然存在的内存泄漏

作者: 毒某人 | 来源:发表于2016-11-25 02:10 被阅读0次

1、用strong和copy来声明delegate的情况下,依然可能发生互相持有的强引用循环。yytext上的两个协议方法一个是copy一个是strong。因为我从开发开始一直是用assign来声明,看到大牛的代码我一度怀疑了自己以前是不是都是错的。后来发现其实并没有所谓对错,只要控制的好,并且是需求的应用场景即可。

2、NSTimer,在容器的生存周期结束后如果还在执行。那么这个timer就会因为没有随着容器释放而释放。解决方式:新浪的妹纸跟我说,放在单利中就好了……我一脸的懵逼,但是解决的方式是这样的。还有一种假设,这几天面试完我会尝试一下。vc容器内用dispatch_source加上timer,也就是在开条子线程,加上这条 task 然后放在runloop中,然后测试下vc销毁后,这条runloop在设定时间后销毁,timer还会不会泄漏。因为我记得runloop可以保证线程的生存周期,不过不管怎么样,把可能存在的风险,也就是timer或者动画,用单利,会变得安全可控很多。

3、关于block,大家记得该weak的weak 该strong的strong。

相关文章

  • iOS_关于ARC下仍然存在的内存泄漏

    1、用strong和copy来声明delegate的情况下,依然可能发生互相持有的强引用循环。yytext上的两个...

  • ARC下的内存泄漏

    ARC下的内存泄漏 ARC全称叫 ARC(Automatic Reference Counting)。在编译期间,...

  • 轻松搞定内存泄露的产生,检测和解决

    以前MRC的下由于缺少release等会经常造成内存泄漏问题,如今在ARC下内存泄漏的问题已经减少了很多,但是还有...

  • 在Objective-C的ARC情况下,什么样的内存泄漏是无法避

    之前写了一个关于__unsafe_unretained特殊标识符讲解的翻译,其中也讲到了关于ARC情况下内存泄漏的...

  • 内存泄漏

    什么是内存泄漏?内存泄漏指任何对象在您不再拥有或需要它之后仍然存在 哪些操作会造成内存泄漏?1、垃圾回收器定期扫描...

  • 哪些操作会造成内存泄漏?

    内存泄漏,就是不再需要的对象仍然存在内存中,内存泄漏不断堆积的后果就是内存溢出,即内存不够用。 垃圾回收机制会定期...

  • 2018-04-24

    第五章:内存管理 29. 什么是ARC:对象被引用的次数。 30. ARC 下可以用“静态分析器”查找内存泄漏问题...

  • iOS 内存泄露以及解决方案

    泄漏原因 在目前主要以ARC进行内存管理的开发模式,导致内寸泄漏的根本原因是代码中存在循环引用,从而导致一些内存无...

  • iOS常见面试题

    一、ARC下怎么检查内存泄漏,你遇到最多的内存泄漏原因是什么? 无固定答案,主要是看她是否遇到过这个问题。 二、如...

  • 关于app的性能优化

    1.使用arc管理内存,避免内存泄漏。 2.给UITableViewCells,UICollectionViewC...

网友评论

      本文标题:iOS_关于ARC下仍然存在的内存泄漏

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