前段时间被分配查应用的内存泄露问题,然后搜集了一大波内存管理相关的资料,并且在整个过程中狠狠的实践了一波。下面就把这段时间内碰到的坑(从别的地方也搜刮到很多坑),以及搜集到的一些理论知识(简洁版)总结一发。
背景:一个复杂的iOS应用可能会混合着MRR和ARC两种内存管理方式,就是有一部分文件MRR实现,而另一部分则是ARC实现(原因目测是因为复用MRR实现的旧代码)。所以就存在一种现象,如果后来的开发者没注意该文件是否为ARC模式时,则有可能会忘记对对象进行release等操作从而导致内存泄露的发生。
除了项目可能是ARC和MRR混合模式,有时候还有很多底层库是使用C/C++实现的,所以对于C/C++的内存管理也是需要有所了解的。