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

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的内存。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,866评论 8 265
  • 面试题参考1 : 面试题[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios阅读 5,678评论 0 4
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 9,794评论 0 11
  • iOS开发中, 之前一直使用swift, 因此对于Objective-C的内存管理机制长期处于混乱的一知半解状态....
    icetime17阅读 4,314评论 1 8
  • 屎1000屎 爱软件之前仅供个人开发代码测试研究,不慎流传,已于开发后一周2017年9月永久废除,请您自行卸载,请...
    嘻嘻嘻嘻12138阅读 1,319评论 0 0