一:写在前面
请使用ARC!!!
如果使用的第三方库不支持ARC机制,可以在target->build phase->compile sources中选择对应的源码文件并在气候加入-fno-objc-arc标示,如下图所示:
如果你的应用对内存泄露比较敏感(长时间运行或者耗费较多内存),或者你对代码有洁癖无法忍受半点内存泄露,而你又没有大把的时间和精力取修复那些虚无缥缈的泄漏点,那么ARC将是你最好的选择,因为修复泄露bug实在是太坑爹了...
如果你不习惯ARC,又或者你使用的SDK版本根本不支持ARC,那么,请看下文。
二:修复方法
好,言归正传。
按我个人理解,修复内存泄露可分为三个阶段:
第一阶段:编码
好的编码习惯可以杜绝大部分的内存泄露,具体操作规范可参见我的另一篇博客iOS编程内存管理小结,这也是杜绝内存泄露的最关键阶段。在本阶段多花一些力气放在精确的内存管理上,你将会在调试阶段节省下大把的用于修复泄露的时间与精力。所谓:磨刀不误砍柴工!