博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[内存管理实践 之 1]在返回按钮中,释放内存
阅读量:7141 次
发布时间:2019-06-28

本文共 1353 字,大约阅读时间需要 4 分钟。

在返回按钮中,释放内存:

-(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];}

转载地址:http://xbmrl.baihongyu.com/

你可能感兴趣的文章
Oracle DBA手记4:数据安全警示录
查看>>
HDU 4638 Group(分组)
查看>>
BZOJ 1037 生日聚会Party(DP)
查看>>
DG - 将physical standby置于read-only模式
查看>>
nginx的反向代理proxy_pass指令
查看>>
IIs工作原理
查看>>
用NSData玩转二进制文件的读写
查看>>
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。
查看>>
ZOJ 1871. Steps
查看>>
Win8使用技巧
查看>>
js+ajax获取文件大小
查看>>
Normalization VS Denormalization [转]
查看>>
perl 实现ascall 码转换
查看>>
KVO 进阶
查看>>
【转】plist文件的内容清空
查看>>
mysql数据库全备和全备还原(使用Xtrabackup)
查看>>
VS无法启动调试:“生成下面的模块时,启用了优化或没有调试信息“
查看>>
C#直接读取磁盘文件(类似linux的Direct IO模式)
查看>>
NHibernate使用之详细图解
查看>>
大型网站的高可用分析
查看>>