ARC-分析内存泄露

     这篇文章针对ARC项目的内存处理和内存安全释放。内存是ios开发中一个比较头疼的问题,下面三篇文章是我个人对内存的理解,仅供参考!希望能对你的开发有所帮助!

   内存检测。
   product ->Analyze静态测试,只检测局部变量。
   product ->Profile动态测试,检测全局变量。

  一、ARC-静态分析和处理内存泄露。

例1、值参数“setObject:forKey”不能为零.导致内存泄露。

            解决:字典的设值的两个方法,setValue:forKey 和 setObject:forKey。功能一样,但是setObject:forKey设置值为nil时会闪退。用setValue不会,还可避免静态内存泄露。

        


       例2、返回“self”,而不是设置的结果.

       

       

      解决:注意代码风格。如下:

- (id)initWithFrame:(CGRect)frame 

{

  self = [superinitWithFrame:frame];

  if (self) {

      [selfinitSubViews];

  }

    returnself;

}


3、值存储在它的初始化是不读

导致原因是这样的代码:

       解决:可以这样写。

        NSDictionary *dic =nil;


4、潜在的泄漏对象存储在“reuslt”。

解决:下面的对比你就知道了!

- (NSString *)fullName {

  NSString *string = [NSString stringWithFormat:@"%@ %@",

                      self.firstName, self.lastName];

  return string;

}


//没有泄露的写法

- (NSString *)fullName {

  NSString *string = [[NSString alloc] initWithFormat:@"%@ %@",

                     self.firstName, self.lastName];

  return string;

}

。。。。。。。。。。。



52直播


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值