在iOS中,无论是ARC还是手动管理内容方式都是采用引用计数的内存管理方式。
这里有几个ARC的基本原则:
1、强引用指向的对象不会被释放。
2、一个对象没有强引用且在AutoreleasePool drain时会立刻释放。
3、弱引用指向的对象将要释放时自动为空。
下面简单介绍一下 ,内存泄漏产生的原因,以及解决的方案。
1 Block循环引用
总结一句话防止Block循环引用就是要防止对象之间引用的闭环出现
2 delegate循环引用问题
delegate循环引用问题比较基础,只需要注意将代理属性修饰为weak即可。
@property (nonatomic ,weak) id delegate;
3 NSTimer循环引用
4 大次数循环内存暴涨问题 (使用自己创建的autoReleasePool可以解决该问题)