最近测试项目,偶然间发现某个地方有内存泄漏的问题,每点开一次该界面,内存都会暴涨10M左右,于是打开XCode自带的内存泄漏检测工具测试了一下,得到了Leak Cycles和Leak by Backtrace的情况,发现内存泄漏很严重啊
于是定位到Leaks指出的代码块,查找了一遍,并没有发现有循环引用的地方。苦思冥想了半天最终还是没有找到结果。后来注意到,内存泄漏的种类并不是Cycles而是Root Leaks,也就是说,内存泄漏并不是由于循环引用引起的。
最后才知道,原来这个文件是一个历史久远的文件,采用的是MRC编写的,后来由于维护人员并不知道是MRC编写,以为和其他文件一样是ARC,于是忽略了内存释放的问题。