57-控制器的生命周期
来源:互联网 发布:水电安装价格知乎 编辑:程序博客网 时间:2024/04/28 04:36
控制器的生命周期
1.通过控制器的生命周期可以了解到:
1>控制器的View什么时候创建,什么时候销毁。
2>控制器的view是懒加载的,例如导航控制器有2个子控制器,先会加载第一个子控制器的view,当Push第二个的时候,才去加载第二个控制器的view。
2.内存警告的传递过程:
手机内存不足产生事件->通知应用程序->调用应 用程序代理方法->把事件传递给窗口->窗口传给控制器->调用控制器 内存警告的方法。
3.在控制器的生命周期需要注意有些事情不能说的太绝对(区别于MRC和ARC):
在控制器的view完全消失的时候,可能会因内存不足发生内存警告,此时可能会调用内存警告方法,
在MRC中会调用View即将卸载的方法(viewWillUnload),然后View有可能会被Release(销毁),
销毁后可能调用View已经销毁的方法(viewDidUnload),ARC自动管理内存,在发生内存警告时候
系统自动处理,不会执行管理内存这三步操作.
4.控制器的View已经卸载(销毁)的时候调用(viewDidUnload方法注意:)
1>作用:viewDidUnload里面一般清空显示在view里面的数据
2>原因:View都不再了,View上面的数据自然要清空
3>怎么把显示在view上面的数据给清空:使用nil,self.array=nil(array是View上面的数组)
建议使用nil的原因:使用nil清空数据,在MRC和ARC都通用,而ARC是不能使用Release. 只有MRC可使用。
5.经验:控制器的生命周期方法(一般以View开头的方法)
//==== ARC的内存管理(1,2,3,4,5,6(可能会调用)) ====
//1.控制器的view加载完成的时候调用
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%s",__func__);
}
//2.控制器的view即将显示的时候调用
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"%s",__func__);
}
//3.控制器的view完全显示的时候调用
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"%s",__func__);
}
//4.控制器的view即将消失的时候调用
-(void)viewWillDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"%s",__func__);
}
//5.控制器的view完全消失的时候调用
-(void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"%s",__func__);
}
//6.控制器的View发生内存警告的时候调用
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
/*
在控制器的生命周期需要注意有些事情不能说的太绝对(区别于MRC和ARC):
在控制器的view完全消失的时候,可能会因内存不足发生内存警告,此时可能会调用内存警告方法,
在MRC中会调用View即将卸载的方法(viewWillUnload),然后View有可能会被Release(销毁),
销毁后可能调用View已经销毁的方法(viewDidUnload),ARC自动管理内存,在发生内存警告时候
系统自动处理,不会执行管理内存这三步操作.
*/
//==== MRC的内存管理(1,2,3,4,5,678(可能会调用)) ====
//7.控制器的View即将卸载(销毁)的时候调用
-(void)viewWillUnload
{
}
//8.控制器的View已经卸载(销毁)的时候调用
-(void)viewDidUnload
{
//1>作用:viewDidUnload里面一般清空显示在view里面的数据
//2>原因:View都不再了,View上面的数据自然要清空
//3>怎么把显示在view上面的数据给清空:使用nil:self.array=nil(array是View上面的数组)
//建议使用nil的原因:,nil清空数据,在MRC和ARC都通用,而ARC是不能使用Release. 只有MRC可以。
}
1.通过控制器的生命周期可以了解到:
1>控制器的View什么时候创建,什么时候销毁。
2>控制器的view是懒加载的,例如导航控制器有2个子控制器,先会加载第一个子控制器的view,当Push第二个的时候,才去加载第二个控制器的view。
2.内存警告的传递过程:
手机内存不足产生事件->通知应用程序->调用应 用程序代理方法->把事件传递给窗口->窗口传给控制器->调用控制器 内存警告的方法。
3.在控制器的生命周期需要注意有些事情不能说的太绝对(区别于MRC和ARC):
在控制器的view完全消失的时候,可能会因内存不足发生内存警告,此时可能会调用内存警告方法,
在MRC中会调用View即将卸载的方法(viewWillUnload),然后View有可能会被Release(销毁),
销毁后可能调用View已经销毁的方法(viewDidUnload),ARC自动管理内存,在发生内存警告时候
系统自动处理,不会执行管理内存这三步操作.
4.控制器的View已经卸载(销毁)的时候调用(viewDidUnload方法注意:)
1>作用:viewDidUnload里面一般清空显示在view里面的数据
2>原因:View都不再了,View上面的数据自然要清空
3>怎么把显示在view上面的数据给清空:使用nil,self.array=nil(array是View上面的数组)
建议使用nil的原因:使用nil清空数据,在MRC和ARC都通用,而ARC是不能使用Release. 只有MRC可使用。
5.经验:控制器的生命周期方法(一般以View开头的方法)
//==== ARC的内存管理(1,2,3,4,5,6(可能会调用)) ====
//1.控制器的view加载完成的时候调用
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%s",__func__);
}
//2.控制器的view即将显示的时候调用
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"%s",__func__);
}
//3.控制器的view完全显示的时候调用
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"%s",__func__);
}
//4.控制器的view即将消失的时候调用
-(void)viewWillDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"%s",__func__);
}
//5.控制器的view完全消失的时候调用
-(void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"%s",__func__);
}
//6.控制器的View发生内存警告的时候调用
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
/*
在控制器的生命周期需要注意有些事情不能说的太绝对(区别于MRC和ARC):
在控制器的view完全消失的时候,可能会因内存不足发生内存警告,此时可能会调用内存警告方法,
在MRC中会调用View即将卸载的方法(viewWillUnload),然后View有可能会被Release(销毁),
销毁后可能调用View已经销毁的方法(viewDidUnload),ARC自动管理内存,在发生内存警告时候
系统自动处理,不会执行管理内存这三步操作.
*/
//==== MRC的内存管理(1,2,3,4,5,678(可能会调用)) ====
//7.控制器的View即将卸载(销毁)的时候调用
-(void)viewWillUnload
{
}
//8.控制器的View已经卸载(销毁)的时候调用
-(void)viewDidUnload
{
//1>作用:viewDidUnload里面一般清空显示在view里面的数据
//2>原因:View都不再了,View上面的数据自然要清空
//3>怎么把显示在view上面的数据给清空:使用nil:self.array=nil(array是View上面的数组)
//建议使用nil的原因:,nil清空数据,在MRC和ARC都通用,而ARC是不能使用Release. 只有MRC可以。
}
0 0
- 57-控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- 控制器的生命周期
- 控制器的生命周期
- 控制器的生命周期
- 控制器的生命周期
- 视图控制器 的生命周期
- 控制器的生命周期
- (iOS)控制器的生命周期
- ios控制器的生命周期
- iOS 控制器的生命周期
- 控制器的生命周期
- 控制器的生命周期方法
- iSO控制器的生命周期
- C++ 文件头和源文件之间的关系以及程序设计的基本原则
- apk的文件结构 及编译流程
- 56-控制器的生命周期图解
- 51的8*8点阵显示数字
- mysql--mysql中event用法详解
- 57-控制器的生命周期
- 数组,vector,map,list,queue区别
- Android中NDK单步调试
- 58-多控制器之间的传值
- 昨天湿鞋了。。
- 人工智能作业——八数码问题 BFS+A* C# WindowsFormApplication
- LINUX目录结构
- Android利用Jsoup解析html 开发网站客户端小记
- 关于Android中Service与Activity的信息交互