iOS 内存泄漏

在iOS中,无论是ARC还是手动管理内容方式都是采用引用计数的内存管理方式。

这里有几个ARC的基本原则:

1、强引用指向的对象不会被释放。

2、一个对象没有强引用且在AutoreleasePool drain时会立刻释放。

3、弱引用指向的对象将要释放时自动为空。

下面简单介绍一下 ,内存泄漏产生的原因,以及解决的方案。

1 Block循环引用

总结一句话防止Block循环引用就是要防止对象之间引用的闭环出现

2 delegate循环引用问题

delegate循环引用问题比较基础,只需要注意将代理属性修饰为weak即可。

@property (nonatomic ,weak) id delegate;


iOS 内存泄漏_第1张图片

NSTimer循环引用

4 大次数循环内存暴涨问题 (使用自己创建的autoReleasePool可以解决该问题)

你可能感兴趣的:(iOS 内存泄漏)