前一段时间,在网上找如何释放内存的方法。可是,怎么找也找不到。今天我在不断的测试看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来检测如下图:
当我把内存释放之后,如下图: