App几个可能造成内存泄漏的情况:
2021-02-03 本文已影响0人
小小鸟他大爷
App几个可能造成内存泄漏的情况:
1.block块中直接用self调用,self将会被block copy到内部增加一次饮用计数,形成循环引用
在block里调用self会不会造成循环引用和这个block是否被这个单例所持有有关
2.delegate声明为strong会造成循环引用,delegate也不能用assign来声明,因为assign可能会造成野指针,应该用weak声明,工程中可能有人习惯用superVC,parentVC等方式来实现delegate类似的功能,这时候要尤其注意
3.有的时候创建一个view会加到windows上,但是最后为了下次不用创建就能使用,所以只将alpha设为0或hidden为YES,没有从windows上移除,这时候就造成了内存泄漏,甚至有的下次没有重用之前创建的view,重复创建,造成view越来越多,泄漏越来越大
4.可能有的数据放到了单例中保存,但是没有指定在何种情况下清空保存在单例中的数据,这时候也会造成泄漏
5.NSTimer会强引用self,所以用完之后要调用