在返回按钮中,释放内存:
-(IBAction)btnBack:(id)sender{ if ([self.str_superViewName isEqualToString:@"ShakeViewController"]) { [configData setObject:@"YES" forKey:@"isShake"]; } //移出两个比较大的重要的子页面 [self.uisv_scrollView0 removeFromSuperview]; [self.scrView removeFromSuperview]; //移出所有子页面 NSArray *views = [self.view subviews]; for (id obj in views) { NSLog(@"obj class === %@",[obj class]); [obj removeFromSuperview]; } //数组中的内容要一个一个释放 [self.nsma_pageControllImages removeAllObjects]; // 如果不写 release 则,仍然内存泄漏 [uisv_scrollView0 release]; [scrView release]; [nsma_pageControllImages release]; //可写 可不写,影响不大// self.uisv_scrollView0 = nil;// self.scrView = nil;// self.nsma_pageControllImages = nil; [self.view removeFromSuperview];}
如果你的页面使用较大的图片或者显示较大量的数据信息。那么一定要在返回按钮中释放内存,而不仅仅是在 viewDidUnload 和 dealloc 两个方法中释放内存。 实践证明,当应用程序收到 内存警告的消息再去释放内存时,往往已经来不及了。
- (void)viewDidUnload{ [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; NSLog(@"===进入viewDidUnload"); self.nsma_pageControllImages = nil; self.scrView = nil; self.uisv_scrollView0 = nil;}-(void)dealloc{ NSLog(@"====进入dealloc");// [nsma_pageControllImages release];// [scrView release];// [uisv_scrollView0 release]; [super dealloc];}