ios 用了ARC技术后内存释放的方法

前一段时间,在网上找如何释放内存的方法。可是,怎么找也找不到。今天我在不断的测试看view的父窗口

NSLog( @"%@" , self.view.superview.superview.superview.superview );

这时我就发现,每次页面转跳,父窗口和父窗口的子窗口还是存在,如果一直页面跳转,没有把没用的窗口的内存释放,内存就越来越多,就像天梯那样,永远都没有尽头。

废话不多说,进入重点。

- (void) viewWillDisappear:(BOOL)animated
{
    [ super viewWillDisappear: animated ];
    // 画面隐藏时停止timer
    if ( [ timer isValid ] )
    {
        [ timer invalidate ];
    }
//    NSLog( @"%@" , self.view.subviews );
//    [ self.view removeFromSuperview ];
    for ( UIView* temp in self.view.subviews )
    {
        [ temp removeFromSuperview ];
    }
    
    //--- 释放内存 ---//
    // 套题数组
//    allTheQuestions = nil ;
}

我是在页面将要消失之前释放没用的指针,我就举例,上面代码中

allTheQuestions 是一个可变数组(NSMutableArray)存储了40个元素。如果我在页面跳转之前没有释放这个数组的内存,如上代码。用Instrument来检测如下图:


当我把内存释放之后,如下图:


关键就是把没用的指针给它赋值未nil。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值