内存错误整理

内存泄露的经验

1、     @property (nonatomic, retain) 一定记得在dealloc里面释放,特别你写的数据模型文件

2、     对数据库查询出来的数据使用时的内存泄露:在Instruments里最终会显示到你数据库语句的内存泄露,实际上你外面使用不当的问题,当然也可能是你查询数据后的封装处理出的问题(这个就看你的了)。

3、     网络数据处理的泄露,大多数开发都使用网络请求框架,然后自己封装,这里面内存泄露就看你的具体处理了。








内存管理经验

1、        dealloc的使用

a)      把dealloc方法放到implementation和synthesize下面方便你对属性是否需要释放的检查

b)  使用宏定义来处理释放

   宏定义:#definesetFree(obj) { if( (obj) != nil ) { [obj release]; obj = nil; } }

 优点

        i.     可能声明了私有变量 但是根据需求有情况下并没有创建。

       ii.     使用时已经做了内存处理但是又一次释放了。

     iii.     减少代码行数 就是减少出错率。

2、    init的使用

a)  创建initData方法做Data部分变量的初始化创建。写在dealloc方法下面方便内存管理。

b)  创建initUI方法对UI部分变量进行初始化添加到视图等操作,写在initData方法下面方便内存管理。

3、    Analyze检测内存

a)  一般用来检测临时变量的内存使用是否规范。

4、    Instruments是比较全面的内存检测。

a)  内存泄露模块(Leaks)->Call Tree然后尽情的操作你的程序吧。

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值