视图控制器的视图的内存管理

  • 如何分配内存
  • 如何释放内存

方法名称

描述

Init

你可以自定义初始化的名称,不管是init还是其他的,确保初始化完成

loadView

当你手动创建的时候,需覆盖这个方法,如果你使用xib或者storyboards,会直接从这些文件加载view

自定义一些属性和方法

创建一个属性来保持这个方法,需要的时候去调用

viewDidLoad

分配或加载view中要显示的数据,一般是加载网络请求的数据。

didReceiveMemoryWarning

在IOS6中,使用该方法来释放对象的引用,一般是内存警告的时候。或者大量的图片数据

viewDidUnload

在IOS6之前使用该方法释放对象的引用

dealloc

覆盖该方法,执行最后的清理操作,注意,属性会自动释放,不需要手动去释放。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 中的视图控制器是非常重要的组件,它们负责管理应用程序的界面,并且需要及时释放以避免内存泄漏。下面以一个简单的例子来说明视图控制器的释放。 假设我们有一个包含两个视图控制器的应用程序,分别是 AViewController 和 BViewController。AViewController 是主界面,BViewController 是从 AViewController 跳转过来的界面。 在 AViewController 中,我们使用如下代码跳转到 BViewController: ``` BViewController *bvc = [[BViewController alloc] initWithNibName:@"BViewController" bundle:nil]; [self.navigationController pushViewController:bvc animated:YES]; ``` 在 BViewController 中,我们可以通过点击返回按钮来返回到 AViewController。这个过程中,AViewController 会被重新显示出来,但是 BViewController 已经不需要了,需要将其释放。 如果我们使用 ARC,那么只需要在 BViewController 中添加如下代码即可: ``` - (void)dealloc { NSLog(@"BViewController dealloc"); } ``` 当 BViewController 被释放时,会自动调用 dealloc 方法,我们可以在这里添加一些清理工作,例如取消网络请求、移除通知等。 如果我们使用手动内存管理(MRC),那么需要在 AViewController 中添加如下代码: ``` - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; if (![self.navigationController.viewControllers containsObject:self]) { // BViewController 被弹出了,需要释放 [self release]; } } ``` 当 BViewController 被弹出时,会触发 AViewController 的 viewWillDisappear 方法,在这里判断当前视图控制器是否还在导航栈中,如果不在就可以释放了。注意,这里需要调用 release 方法来手动释放内存。 总之,无论是使用 ARC 还是手动内存管理,都需要及时释放不再需要的视图控制器,以避免内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值