实际开发过程中应该注意的内存问题

1,慎重使用单例,避免造成不必要的常驻内存。

2,Delegate需要使用weak引用。

3,使用block访问self时,使用weak和strong避免Retain Cycle。

4,strong引用子对象,weak引用父对象,基础类型使用assign,NSString、NSArray、block使用copy。

5,在dealloc方法中remove observer(KVO)。

6,指定repeat参数是YES的timer,必须在合适的时机调用invalidate方法。

7,在init和dealloc中除父类属性外,禁止使用self访问属性,只允许通过成员变量直接访问。

8,在使用到UIScrollView,UITableView,UICollectionView的class中,需要在dealloc中将delegate,dataSource置为nil。

iOS9以上类的delegate和datasource由assign改为了weak,如果只支持iOS9以上,可以不手动置nil。

9,禁止一次性申请超过10MB的内存。

你可能感兴趣的:(实际开发过程中应该注意的内存问题)