(三十五)控制器的生命周期循环

控制器有两个已经废除的方法:

viewWillUnload与viewDidUnload方法:

/**
 *  控制器的View即将销毁的时候调用
 */
- (void)viewWillUnload{
    [super viewWillUnload];
}
/**
 *  控制器的View已经销毁的时候调用
 */
- (void)viewDidUnload{
    [super viewDidUnload];
}


收到内存警告的顺序:AppDelegate->UIWindow->UIViewController。

在收到内存警告时,应该从没有显示的视图开始销毁,销毁过程中会先调用viewWillUnload,销毁视图,再调用viewDidUnload方法:


在非ARC状态下,应该在viewDidUnload方法把所有属性进行清空,ARC与非ARC通用的写法:self.xxx = nil;相当于[self.xxx release];

原因:

set方法在非ARC中会写成

- (void)setXxx:(Xxx *)xxx{

   if( _xxx != xxx ){
       [_xxx release];
       _xxx = [xxx retain];
   }

}
传入一个nil,对nil进行retain是无效的,只是调用了[self.xxx release],因此使用self.xxx = nil是较好的写法。

完整的生命周期循环为:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值